我试图表示一个不带参数、不返回值的函数(如果您一定要知道,我正在用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") )
把奶瓶给宝宝!
https://stackoverflow.com/questions/4543228
复制相似问题