【发布时间】:2014-04-03 22:42:09
【问题描述】:
我试图了解这两种引用/定义Function Literal(引用anonymous function)的方法之间的关键区别:
val
scala> val v2 = new Function[Int, Int] {
| def apply(a: Int): Int = a + 1
| }
v2: Int => Int = <function1>
def
scala> def f2 = new Function[Int, Int] {
| def apply(a: Int): Int = a + 1
| }
f2: Int => Int
似乎在使用方面几乎相同。我可以将v2 或f2 传递给接受(Int) => Int 作为参数的函数。将参数传递给它的..
我猜还是 v2 的情况它创建了一个引用 Function1 对象的 Function1 对象.. 就像 proxy 一样?
好的..我的问题是:第一种和第二种方法的优缺点是什么?
其中的定义是def,还是Function Literal吗?
【问题讨论】:
-
在此处查看接受的答案:stackoverflow.com/questions/19607485/…。基本上是方法(def)vs函数对象(val),但两者几乎相同。