yur*_*ura 7 scala syntax-error scala-2.8
这有效
def func(f: => Int) = f
Run Code Online (Sandbox Code Playgroud)
这不应该(例如在课堂内)
type EmptyFunct = => Int
Run Code Online (Sandbox Code Playgroud)
要么
type EmptyFunct = (=> Int)
Run Code Online (Sandbox Code Playgroud)
Scala版本2.9两个问题:
Did*_*ont 12
=> Int不是没有参数的函数,它是一个Int参数,通过名称传递约定.(当然,这是相当好的一点,因为它通过传递没有参数的函数来实现).
写入没有参数的函数() => Int.你可以做到type EmptyFunct = () => Int.
它不是一种类型.在func里面,f将被输入为Int.类型()=> Int的参数不会.
def func(f: => Int) = f *2
Run Code Online (Sandbox Code Playgroud)
func(:=> Int)Int
但
def func(f: () => Int) : Int = f*2
Run Code Online (Sandbox Code Playgroud)
error:value*不是()=> Int的成员