【发布时间】:2015-08-07 03:44:27
【问题描述】:
我在 Scala REPL 中定义了两个函数(方法):
scala> val b=(x:Int)=>x+1
b: Int => Int = <function1>
scala> def c(x:Int)=x+1
c: (x: Int)Int
及用法:
scala> b(1)
res4: Int = 2
scala> c(1)
res5: Int = 2
虽然两个定义都有效,但 b 和 c 似乎有不同的类型。我想知道它们之间是否存在一些差异。为什么 Scala 不对b 和c 使用相同的类型?有人对此有想法吗?
不重复:
这个问题不是链接问题的重复。虽然 它询问使用 def 和 val 定义一个 函数,代码示例清楚地表明询问者很困惑 关于Scala中方法和函数之间的区别。这 示例根本不使用 def 来定义函数。 – 亚伦 Novstrup 7 小时前
【问题讨论】:
-
其中一个会为每次调用生成新的函数实例。
-
这个问题不是链接问题的副本。尽管它询问了使用
def和val定义函数之间的区别,但代码示例清楚地表明提问者对the difference between methods and functions in Scala 感到困惑。该示例根本没有使用def来定义函数。
标签: scala functional-programming