def和lambda'd val有什么区别?

时间:2012-08-03 16:13:07

标签: scala lambda

之间有什么区别
def plusOne(n: Int) = n + 1

val plusOne = (n : Int) => n + 1

2 个答案:

答案 0 :(得分:4)

真正的区别在于第一个是“方法”,第二个是“函数”,而在Scala中,这两个东西出奇地不同。

例如,您可以看到Difference between method and function in Scala

答案 1 :(得分:4)

实际上,它们都是功能。

第一个是方法或局部函数,具体取决于声明的位置。第二个是函数值,它是在运行时实例化的对象。方法,局部函数,函数值和函数文字都是Scala中的各种函数。

请参阅此处,了解Martin Odersky关于此主题的书籍章节:http://www.artima.com/pins1ed/functions-and-closures.html