我試圖理解引用的這兩種方法之間的關鍵區別/定義Function Literal
(參考):函數文本引用和高清
通過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
的情況?
好的..我的問題是:第1和第2種方法的優缺點是什麼?
它的定義是def
,它還是Function Literal
?
可能的重複http://stackoverflow.com/a/18887341/985949 – Mik378
看到接受的答案在這裏:http://stackoverflow.com/questions/19607485/def-or-val-for-defining-function-在-階?RQ = 1。基本上它是一個方法(def)vs函數對象(val),但兩者幾乎相同。 –