我试图表示一个不带参数的函数并且不返回任何值(我在JavaScript中模拟setTimeout函数,如果你必须知道的话.)
case class Scheduled(time : Int, callback : => Unit)
Run Code Online (Sandbox Code Playgroud)
不编译,说"`val'参数可能不是按名称调用"
case class Scheduled(time : Int, callback : () => Unit)
Run Code Online (Sandbox Code Playgroud)
编译,但必须奇怪地调用,而不是
Scheduled(40, { println("x") } )
Run Code Online (Sandbox Code Playgroud)
我必须这样做
Scheduled(40, { () => println("x") } )
Run Code Online (Sandbox Code Playgroud)
什么也有效
class Scheduled(time : Int, callback : Unit => Unit)
Run Code Online (Sandbox Code Playgroud)
但是以一种更加明智的方式被引用
Scheduled(40, { x : Unit => println("x") } )
Run Code Online (Sandbox Code Playgroud)
(Unit类型的变量是什么?)我当然想要的是一个构造函数,如果它是一个普通的函数,它可以调用我调用它的方式:
Scheduled(40, println("x") )
Run Code Online (Sandbox Code Playgroud)
给宝宝他的瓶子!
scala ×1