您好,登錄后才能下訂單哦!
1、 定義
如果一個函數(shù)沒有名字的話,就是匿名函數(shù)了。只使用一次,并沒有多次調(diào)用
2、 匿名函數(shù)的使用場景
將匿名函數(shù),直接賦值給變量
將匿名函數(shù),作為函數(shù)的參數(shù)進(jìn)行使用
3、 匿名函數(shù)的幾種表現(xiàn)形式?或者呈現(xiàn)形式
沒有參數(shù)輸入,沒有返回值的匿名函數(shù)
有參數(shù)輸入,沒有返回值的匿名函數(shù)
有參數(shù)輸入,有返回值的匿名函數(shù)
4、 匿名函數(shù)的語法規(guī)則,有兩種形式吧:[一種有輸入?yún)?shù),一種沒有輸入?yún)?shù)]
(參數(shù)名:參數(shù)類型) => 函數(shù)體
函數(shù)體
package com.xej.learning.nimingFunction object AnonymousFunction { def main(args: Array[String]): Unit = { //對于有參數(shù)輸入的匿名函數(shù),調(diào)用時,同樣要用參數(shù)輸入哦 kafkaName("apache kafka") println("--->:\t" + flumeName("apache flume")) sparkName //匿名函數(shù)的使用場景--1,作為參數(shù),傳入給高階函數(shù) //下面,map,foreach里,就是匿名函數(shù) Array(3,2,1,5).map{(x: Int) => x + 2}.foreach(x => print(x + " ")) println("\n----------------------------------------------------") Array(3,2,1,5).map{_ + 1}.foreach(x => print(x + " ")) } //匿名函數(shù)的使用場景--2,直接賦值給變量 //參數(shù):有參數(shù)輸入,函數(shù)體:無返回值,形式的匿名函數(shù)//函數(shù)體里,可能有很多條語句哦, //只是最終結(jié)果,是有返回值的 val kafkaName = (name: String) => println("--kafka-->" + name) //參數(shù):有參數(shù)輸入,函數(shù)體:有返回值,形式的匿名函數(shù) val flumeName = (name: String) => "--flume-->" + name //參數(shù):無參數(shù)輸入,函數(shù)體:無返回值,形式的匿名函數(shù) val sparkName = println("----this is spark------") }
spark源碼,marathon源碼中,都大量使用了匿名函數(shù)
下面是marathon源碼中的樣例
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。