- 定義
閉包是一個函數,返回值依賴於聲明在函數外部的一個或多個變量。
閉包通常來講可以簡單的認爲是可以訪問一個函數裏面局部變量的另外一個函數。
var factor = 3
val multiplier = (i:Int) => i * factor
這裏我們引入一個自由變量 factor,這個變量定義在函數外面。
這樣定義的函數變量 multiplier 成爲一個"閉包",因爲它引用到函數外面定義的變量,定義這個函數的過程是將這個自由變量捕獲而構成一個封閉的函數。
object Test {
def main(args: Array[String]) {
println( "muliplier(1) value = " + multiplier(1) )
println( "muliplier(2) value = " + multiplier(2) )
}
var factor = 3
val multiplier = (i:Int) => i * factor
}
請關注作者公衆號,謝謝!