W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Scala 的 Match 表達(dá)式支持從多個(gè)選擇中選取其一,類似其它語(yǔ)言中的 switch 語(yǔ)句。通常來(lái)說(shuō),Scala 的 match 表達(dá)式支持任意的匹配模式,這種基本模式將在后面介紹,本篇介紹類似 switch 用法的 match 表達(dá)式,也是在多個(gè)選項(xiàng)中選擇其一。
例如下面的例子從參數(shù)中讀取食品的名稱,然后根據(jù)食品的名稱,打印出該和該食品搭配的食品,比如輸入 ”salt”,與之對(duì)應(yīng)的食品為”pepper”。如果是”chips”,那么搭配的就是“salsa”等等。
val firstArg = if (args.length >0 ) args(0) else ""
firstArg match {
case "salt" => println("pepper")
case "chips" => println("salsa")
case "eggs" => println("bacon")
case _ => println("huh?")
}
這段代碼和 Java 的 switch 相比有幾點(diǎn)不同:
一是任何類型的常量都可以用在 case 語(yǔ)句中,而不僅僅是 int 或是枚舉類型。
二是每個(gè) case 語(yǔ)句無(wú)需使用 break,Scala不支持“fall through”。
三是 Scala 的缺省匹配為”_”,其作用類似 java 中的 default。
而最關(guān)鍵的一點(diǎn)是 scala 的 match 表達(dá)式有返回值,上面的代碼使用的是 println 打印,而實(shí)際上你可以使用表達(dá)式,比如修改上面的代碼如下:
val firstArg = if (args.length >0 ) args(0) else ""
val friend = firstArg match {
case "salt" => "pepper"
case "chips" => "salsa"
case "eggs" => "bacon"
case _ => "huh?"
}
這段代碼和前面的代碼是等效的,不同的是后面這段代碼 match 表達(dá)式返回結(jié)果。
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)系方式:
更多建議: