您好,登錄后才能下訂單哦!
閉包是一個(gè)函數(shù),返回值依賴于聲明在函數(shù)外部的一個(gè)或多個(gè)變量。
閉包通常來講可以簡(jiǎn)單的認(rèn)為是可以訪問一個(gè)函數(shù)里面局部變量的另外一個(gè)函數(shù)。
比如函數(shù):val multiplier = (i:Int) => i * factor;factor不是形式參數(shù),而是自由變量;這樣定義的函數(shù)變量 multiplier 成為一個(gè)"閉包",因?yàn)樗玫胶瘮?shù)外面定義的變量,定義這個(gè)函數(shù)的過程是將這個(gè)自由變量捕獲而構(gòu)成一個(gè)封閉的函數(shù)。
將原來接受兩個(gè)參數(shù)的函數(shù)變成新的接受一個(gè)參數(shù)的函數(shù)的過程。新的函數(shù)返回一個(gè)以原有第二個(gè)參數(shù)為參數(shù)的函數(shù)。
def sum(x:Int,y:Int)=x+y,柯里化之后就是def sum(x:Int)(y:Int) = x + y。
這個(gè)函數(shù)是什么意思呢? 接收一個(gè)x為參數(shù),返回一個(gè)匿名函數(shù),該匿名函數(shù)的定義是:接收一個(gè)Int型參數(shù)y,函數(shù)體為x+y
偏函數(shù)不是函數(shù),Scala中的Partia Function是一個(gè)Trait,其的類型為PartialFunction[A,B],其中接收一個(gè)類型為A的參數(shù),返回一個(gè)類型為B的結(jié)果。
偏函數(shù)內(nèi)部有一些方法,比如isDefinedAt、OrElse、 andThen、applyOrElse
偏應(yīng)用函數(shù),是指一個(gè)函數(shù)有n個(gè)參數(shù), 而我們?yōu)槠涮峁┥儆趎個(gè)參數(shù), 那就得到了一個(gè)部分應(yīng)用函數(shù)。
scala 中沒有 static 關(guān)鍵字
所以 對(duì)于一個(gè)class來說,所有的方法和成員變量在實(shí)例被 new 出來之前都是無法訪問的;
scala object 中所有成員變量和方法默認(rèn)都是 static 的;
所以只有object中的main方法是可以直接訪問的。
map定義:var verMap = Map[String, String]()
map添加元素:verMap += (mapKey -> categeryName)
list定義:var listNewValue: List[String] = List()
list添加元素:listNewValue :+= mulValue
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。