久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

好程序員大數(shù)據(jù)Scala系列之閉包

 好程序員IT 2019-09-24

  好程序員大數(shù)據(jù)Scala系列之閉包,閉包是一個函數(shù),,返回值依賴于聲明在函數(shù)外部的一個或多個變量,。

  函數(shù)體內(nèi)可以方法相應作用域內(nèi)的任何變量。

  閉包通常來講可以簡單的認為是可以訪問一個函數(shù)里面局部變量的另外一個函數(shù),。

普通函數(shù):

val multiplier = (i:Int) => i * 10  

函數(shù)體內(nèi)有一個變量 i,,它作為函數(shù)的一個參數(shù)。

val multiplier = (i:Int) => i * factor

  multiplier 中有兩個變量:i 和 factor,。其中的一個 i 是函數(shù)的形式參數(shù),,在 multiplier 函數(shù)被調(diào)用時,,i 被賦予一個新的值,。然而,factor不是形式參數(shù),,而是自由變量,考慮下面代碼:

var factor = 3  
val multiplier = (i:Int) => i * factor  

這里我們引入一個自由變量 factor,,這個變量定義在函數(shù)外面。

這樣定義的函數(shù)變量 multiplier 成為一個"閉包",,因為它引用到函數(shù)外面定義的變量,定義這個函數(shù)的過程是將這個自由變量捕獲而構(gòu)成一個封閉的函數(shù),。

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  
}  

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多