我试图表示一个不接受任何参数且不返回任何值的函数(如果您一定要知道的话,我正在用 JavaScript 模拟 setTimeout 函数)
case class Scheduled(time : Int, callback : => Unit)
不能编译,表示“‘ val’参数可能不是按名称调用的”
case class Scheduled(time : Int, callback : () => Unit)
编译,但必须以奇怪的方式调用,而不是
Scheduled(40, { println("x") } )
我必须这么做
Scheduled(40, { () => println("x") } )
同样有效的是
class Scheduled(time : Int, callback : Unit => Unit)
而是以一种更不明智的方式援引
Scheduled(40, { x : Unit => println("x") } )
(Unit 类型的变量是什么?)当然,我的 想要是一个构造函数,可以像普通函数那样调用它:
Scheduled(40, println("x") )
把奶瓶给宝宝!