为什么以下代码片段中的f给出值1.我应该f()是1.如何获得对函数的引用f:()=> Int
var y = 0
def f():Int = {y + 1}
f
Run Code Online (Sandbox Code Playgroud)
斯卡拉的事情让我疯狂.
如果您正在调用没有参数的函数,则可以删除括号.这就是为什么f评估为1.
如果编译器知道您期望该类型的值,则完全相同的表达式也可以计算为函数引用.
val foo: () => Int = f
Run Code Online (Sandbox Code Playgroud)