Scala閉包怎么自定義

本篇內(nèi)容主要講解“Scala閉包怎么自定義”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Scala閉包怎么自定義”吧!

超過十載行業(yè)經(jīng)驗,技術(shù)領(lǐng)先,服務(wù)至上的經(jīng)營模式,全靠網(wǎng)絡(luò)和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務(wù)范圍包括了:成都做網(wǎng)站、成都網(wǎng)站制作,成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡(luò)托管,成都小程序開發(fā),微信開發(fā),App定制開發(fā),同時也可以讓客戶的網(wǎng)站和網(wǎng)絡(luò)營銷和我們一樣獲得訂單和生意!

閉包是一個函數(shù),返回值依賴于聲明在函數(shù)外部的一個或多個變量。

閉包通常來講可以簡單的認(rèn)為是可以訪問一個函數(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  
}  

執(zhí)行以上代碼,輸出結(jié)果為:

$ scalac Test.scala  
$  scala Test  
muliplier(1) value = 3  
muliplier(2) value = 6  

到此,相信大家對“Scala閉包怎么自定義”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

分享題目:Scala閉包怎么自定義
分享URL:http://muchs.cn/article10/pppdgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、品牌網(wǎng)站制作、網(wǎng)站策劃企業(yè)建站、App開發(fā)、網(wǎng)站維護

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)