W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
和其它語(yǔ)言(比如 Java,C#)相比,Scala 只內(nèi)置了為數(shù)不多的幾種程序控制語(yǔ)句: if,while,for ,try match 以及函數(shù)調(diào)用,這是因?yàn)閺腟cala 誕生開(kāi)始就包含了函數(shù)字面量,Scala 內(nèi)核沒(méi)有定義過(guò)多的控制結(jié)構(gòu),而是可以通過(guò)額外的庫(kù)來(lái)擴(kuò)展程序的控制結(jié)構(gòu)。
Scala的所有控制結(jié)構(gòu)都有返回結(jié)果,如果你使用過(guò) Java或C#,就可能了解 Java 提供的三元運(yùn)算符 ?: ,它的基本功能和 if 一樣,當(dāng)可以返回結(jié)果。Scala 在此基礎(chǔ)上所有控制結(jié)構(gòu)(while,try,if,等)都可以返回結(jié)果。這樣做的一個(gè)好處是,可以簡(jiǎn)化代碼,如果沒(méi)有這種特點(diǎn),程序員常常需要?jiǎng)?chuàng)建一個(gè)臨時(shí)變量用來(lái)保存結(jié)果。
總的來(lái)說(shuō),Scala 提供的基本程序控制結(jié)構(gòu),“麻雀雖小,五臟俱全”,雖然少,但足夠滿足其他指令式語(yǔ)言(如 Java,C++)所支持的程序控制功能,而且由于這些指令都有返回結(jié)果,可以使得代碼更為精簡(jiǎn)。
Scala 語(yǔ)言的 if 的基本功能和其它語(yǔ)言沒(méi)有什么不同,它根據(jù)條件執(zhí)行兩個(gè)不同的分支,比如,使用 Java 風(fēng)格編寫(xiě)下面 Scala 的 if 語(yǔ)句的一個(gè)例子:
var filename="default.txt"
if(!args.isEmpty)
filename =args(0)
上面代碼和使用 Java 實(shí)現(xiàn)沒(méi)有太多區(qū)別,看起來(lái)不怎么像 Scala 風(fēng)格,我們重新改寫(xiě)一下,利用 if 可以返回結(jié)果這個(gè)特點(diǎn)。
val filename=
if(!args.isEmpty) args(0)
else "default.txt"
首先這種代碼比前段代碼短,更重要的是這段代碼使用 val 而無(wú)需使用 var 類(lèi)型的變量。使用 val 為函數(shù)式編程風(fēng)格。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: