真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Scala語言中有哪些高階函數(shù)-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“Scala語言中有哪些高階函數(shù)”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Scala語言中有哪些高階函數(shù)”這篇文章吧。

創(chuàng)新互聯(lián)公司"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機(jī)版的企業(yè)網(wǎng)站。實現(xiàn)跨屏營銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營銷需求!創(chuàng)新互聯(lián)公司具備承接各種類型的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)項目的能力。經(jīng)過10余年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評。

==> 常用函數(shù)講解


        ---> map  作用于列表中的每一個元素

// 定義一個列表 
val list= List(1,2,3,4,5,6,7,8,9)

// list 列表中的所有元素乘以2
list.map((i:Int) => i*2)

// 使用 foreach 做相同的操作,foreach 不會返回值
list.foreach((i:Int) => i*2)

      ---> filter    過濾返回值為 False 的元素

val list = List(1,2,3,4,5,6,7,8,9)

list.filter((i:Int) => i%2==0)
// 返回結(jié)果為:List[Int] = List(2, 4, 6, 8)
// 還可寫作
num.filter(_%2==0)

      ---> zip 將兩個數(shù)組合并

List(1,2,3).zip(List(4,5,6))
// 輸出結(jié)果為
List[(Int, Int)] = List((1,4), (2,5), (3,6))

      ---> partition    將符合過濾規(guī)則的元素放在一個分區(qū),將不符合過濾規(guī)則的放在別一個分區(qū)

List(1,2,3,4,5,6,7,8,9).partition((i:Int) => i%2==0)
// 輸出結(jié)果為:(List[Int], List[Int]) = (List(2, 4, 6, 8),List(1, 3, 5, 7, 9))

      ---> find  找到列表中第一個符合規(guī)則的元素

      ---> flatten 壓平操作,將三維數(shù)組轉(zhuǎn)化成二維數(shù)組或?qū)⒍S數(shù)組轉(zhuǎn)化為一維數(shù)組,需要注意的是,轉(zhuǎn)化時必須保證每個元素還能夠再進(jìn)行提取,否則會報錯

List(List(1,List(2,3,4)), List(List(5,6,7),List(8,9))).flatten


// 如果要繼續(xù)進(jìn)行壓平操作,剛會報錯
List(List(1,List(2,3,4)), List(List(5,6,7),List(8,9))).flatten.flatten
error:
:12: error: No implicit view available from Any => scala.collection.GenTraversableOnce[B].
List(List(1,List(2,3,4)), List(List(5,6,7),List(8,9))).flatten.flatten

// 若要繼續(xù)壓平操作,需將處理處理修改一下
List(List(List(1),List(2,3,4)), List(List(5,6,7),List(8,9))).flatten.flatten

// 結(jié)果為:List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9)

      ---> flatMap  相當(dāng)于 Map 與 flatten 兩個功能的結(jié)合體

val list = List(List(1,2,3),List(4,5,6))
// 此處的 x 相當(dāng)于將源數(shù)據(jù) flatten 壓平后得到的結(jié)果,然后對每個元素進(jìn)行操作
list.flatMap(x=>x.map(_*2))
// 此條語句等價于以下兩步操作
val x = list.flatten
x.map(_*2)

==> 閉包    函數(shù)的嵌套

    ---> 定義普通函數(shù):

def myfun(x:Int, y:Int):Int = x * y

    --->采用閉包

// 定義一個閉包函數(shù),其中,x 為乘數(shù)因子,即:乘以的倍數(shù)(我自己理解為被乘數(shù)),y 是使用函數(shù)傳入的參數(shù)
def myfun(x:Int)=(y:Int) => x * y

// 第一步先定義自己函數(shù)的模型
val mytest = myfun(2)

// 使用自己定義好的函數(shù)模型,傳入?yún)?shù)
mytest(20)

==> 柯里化一個數(shù)學(xué)家的名子,其本質(zhì)將一個多參數(shù)函數(shù)轉(zhuǎn)換成函數(shù)鏈,每個節(jié)點上都有一個單一參數(shù)的函數(shù)

        舉例:


def add(x:Int, y:Int):Int = x + y

def add(x:Int)(y:Int) = x + y

以上是“Scala語言中有哪些高階函數(shù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


文章名稱:Scala語言中有哪些高階函數(shù)-創(chuàng)新互聯(lián)
新聞來源:http://weahome.cn/article/ihihj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部