您好,登錄后才能下訂單哦!
一個函數字面量的函數體通常只能使用輸入參數和函數字面量內定義的本地變量.不過,Scala允許一個函數字面量使用它所在環境的變量.
所謂"閉包",指的是這樣的一個函數字面量,它使用一個從其所在環境"捕獲"到的非本地、非參數變量。有時人們會交替使用術語"函數字面量"和"閉包"。但是從技術上來說,它們并不相同。
下面是一個閉包的例子:
def encodeWithSeed(num:Int, seed:Int):Long = { def encode(x:Int,func:(Int)=>Int):Long = { val y = x + 1000; func(y); } val result = encode(num,(n:Int)=>(n*seed)); result; }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。