溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

每天學習一點Scala06_閉包

發(fā)布時間:2020-07-05 04:37:06 來源:網絡 閱讀:469 作者:snailbigdata 欄目:開發(fā)技術

一個函數字面量的函數體通常只能使用輸入參數和函數字面量內定義的本地變量.不過,Scala允許一個函數字面量使用它所在環(huán)境的變量.

所謂"閉包",指的是這樣的一個函數字面量,它使用一個從其所在環(huán)境"捕獲"到的非本地、非參數變量。有時人們會交替使用術語"函數字面量"和"閉包"。但是從技術上來說,它們并不相同。

下面是一個閉包的例子:

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;
}


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI