柚子快報(bào)邀請(qǐng)碼778899分享:Scala的一等公民和至簡(jiǎn)原則
柚子快報(bào)邀請(qǐng)碼778899分享:Scala的一等公民和至簡(jiǎn)原則
1. Scala 中,函數(shù)是一等公民具體體現(xiàn)在哪里
Scala 混合了面向?qū)ο筇匦院秃瘮?shù)式的特性函數(shù)可以作為值傳遞:函數(shù)可以作為參數(shù)傳遞給其他函數(shù),也可以作為返回值返回給其他函數(shù)函數(shù)可以賦值給變量:和其他數(shù)據(jù)類型?樣,函數(shù)也可以賦值給變量,變量的類型就是函數(shù)的類型函數(shù)可以嵌套定義:在函數(shù)內(nèi)部可以定義另外?個(gè)函數(shù),內(nèi)部函數(shù)可以定義外部函數(shù)的變量Scala支持匿名函數(shù),可以直接定義并傳遞匿名函數(shù)
2. 說(shuō)說(shuō) Scala 函數(shù)的至簡(jiǎn)原則
方法和函數(shù)不建議寫(xiě) return 關(guān)鍵字,Scala 會(huì)使用函數(shù)體的最后一行代碼作為返回值;方法的返回值類型如果能夠推斷出來(lái),那么可以省略,如果有 return 則不能省略返回值類型,必須指定;因?yàn)楹瘮?shù)是對(duì)象,所以函數(shù)有類型,但函數(shù)類型可以省略,Scala 編譯期可以自動(dòng)推斷類型;如果方法明確聲明了返回值為 Unit,那么即使方法體中有 return 關(guān)鍵字也不起作用;如果方法的返回值類型為 Unit,可以省略等號(hào) = ;如果函數(shù)的參數(shù)類型如果能夠推斷出來(lái),那么可以省略;如果方法體或函數(shù)體只有一行代碼,可以省略花括號(hào) {} ;如果方法無(wú)參,但是定義時(shí)聲明了 () ,調(diào)用時(shí)小括號(hào) () 可省可不??;如果方法無(wú)參,但是定義時(shí)沒(méi)有聲明 () ,調(diào)用時(shí)必須省略小括號(hào) () ;如果不關(guān)心名稱,只關(guān)心邏輯處理,那么函數(shù)名可以省略。也就是所謂的匿名函數(shù);如果匿名函數(shù)只有一個(gè)參數(shù),小括號(hào) () 和參數(shù)類型都能省略,沒(méi)有參數(shù)或參數(shù)超過(guò)一個(gè)的情況下不能省略 ();如果參數(shù)只出現(xiàn)一次,且方法體或函數(shù)體沒(méi)有嵌套使用參數(shù),則參數(shù)可以用下劃線 _ 來(lái)替代。
柚子快報(bào)邀請(qǐng)碼778899分享:Scala的一等公民和至簡(jiǎn)原則
精彩文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。