我正在使用REPL通过名称示例进行一些调用,并在Eclipse中运行相同的示例.
以下是Eclipse中的内容:
场景1:
val funct = {println("Calling funct")}
takesFunct(funct)
def takesFunct(f: => Unit)
{
val b = f
}
Run Code Online (Sandbox Code Playgroud)
输出是:调用函数
场景2:
方法takeFunct保持不变
takesFunct({println("Calling funct")}
Run Code Online (Sandbox Code Playgroud)
输出是:
调用本功能
调用本功能
Scala REPL场景1:
scala> def takesFunct(f: => Unit)
{
val b = f
}
takesFunct: (f: => Unit)Unit
scala> val funct = {println("Calling funct")}
Calling funct
funct: Unit = ()
scala> takesFunct(funct)
// No Output
Run Code Online (Sandbox Code Playgroud)
场景2与上面定义的方法相同
scala> takesFunct({println("Calling funct")}
Calling funct
Run Code Online (Sandbox Code Playgroud)
两个问题
1)为什么Eclipse的输出与REPL不同?
2)传球有什么区别
val funct = {...}
takesFunct(funct)
Run Code Online (Sandbox Code Playgroud)
而不是
takesFunct({...})
Run Code Online (Sandbox Code Playgroud) scala ×1