Scala def和lambda有何不同';迪瓦尔?

Scala def和lambda有何不同';迪瓦尔?,scala,lambda,Scala,Lambda,两者的区别是什么 def plusOne(n: Int) = n + 1 及 真正的区别在于,第一个是“方法”,第二个是“函数”,在Scala中,这两个东西有着惊人的不同 例如,您可以看到。实际上,它们都是函数 第一个是方法或局部函数,具体取决于声明它的位置。第二个是函数值,它是在运行时实例化的对象。方法、局部函数、函数值和函数文本都是Scala中函数的风格 马丁·奥德斯基(Martin Odersky)的书中关于这个主题的一章,请参见此处:可能重复的@0\uuuu:不是重复的。这是关于函数和

两者的区别是什么

def plusOne(n: Int) = n + 1


真正的区别在于,第一个是“方法”,第二个是“函数”,在Scala中,这两个东西有着惊人的不同


例如,您可以看到。

实际上,它们都是函数

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


马丁·奥德斯基(Martin Odersky)的书中关于这个主题的一章,请参见此处:

可能重复的@0\uuuu:不是重复的。这是关于函数和
var
s之间的区别。@Mechanical snail-我没有看到
var
s。很明显,这是方法与功能的对比(
val plusOne
持有一个相当于
plusOne\uu
定义为方法的功能)。如果您不知道术语,那么“函数与lambda'd val之间的区别”这个问题就与您无关了。如果我知道这就是我要问的,我就不需要问这个问题了。
val plusOne = (n : Int) => n + 1