【发布时间】:2018-06-17 10:15:53
【问题描述】:
在函数参数描述中使用这些时,它们具有不同的效果。 只有后一种形式可以接受像
这样的多行操作{
println(“hello”)
println(“world”)
1
}
但是,前者不能。
我知道'()' 的意思是“无参数”,对吧?但是'=>Int'中的''是什么意思?
这就是整个故事。
定义一个函数
def func(x: =>Int)= {
println(x)
}
调用它
func {
println("hello")
println("world")
1
}
我们会得到
hello
world
1
但是,如果我们将函数定义为
def func(x: ()=>Int)= {
println(x)
}
使用前面的代码调用它,我们会得到
error: type mismatch;
found : Int(1)
required: () => Int
1
^
那么,‘x: () => Int’和‘x: => Int’有什么区别?
【问题讨论】:
-
=> 用于标识输入和输出类型。左边的类型是输入类型,右边的类型是函数的输出类型。您显示的语法不正确。您能否澄清您的问题或发布一些代码?
标签: scala