溫馨提示×

溫馨提示×

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

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

每天學(xué)一點(diǎn)Scala之 匿名函數(shù)

發(fā)布時間:2020-06-07 08:17:08 來源:網(wǎng)絡(luò) 閱讀:1355 作者:故新 欄目:建站服務(wù)器

1、  定義

    如果一個函數(shù)沒有名字的話,就是匿名函數(shù)了。只使用一次,并沒有多次調(diào)用

2、  匿名函數(shù)的使用場景


    1. 將匿名函數(shù),直接賦值給變量

    2. 將匿名函數(shù),作為函數(shù)的參數(shù)進(jìn)行使用

3、  匿名函數(shù)的幾種表現(xiàn)形式?或者呈現(xiàn)形式


    1. 沒有參數(shù)輸入,沒有返回值的匿名函數(shù)

    2. 有參數(shù)輸入,沒有返回值的匿名函數(shù)

    3. 有參數(shù)輸入,有返回值的匿名函數(shù)

4、  匿名函數(shù)的語法規(guī)則,有兩種形式吧:[一種有輸入?yún)?shù),一種沒有輸入?yún)?shù)]


    1. (參數(shù)名:參數(shù)類型) => 函數(shù)體

    2. 函數(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源碼中的樣例

每天學(xué)一點(diǎn)Scala之 匿名函數(shù)






向AI問一下細(xì)節(jié)

免責(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)容。

AI