W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Option
允許我們在沒(méi)有null“hack”的情況下顯式地表達(dá)空值。
Option是一個(gè)抽象類,它的兩個(gè)具體子類是Some,當(dāng)我們有一個(gè)值,而None,當(dāng)我們沒(méi)有。
您可以在以下示例中查看選項(xiàng),一些和無(wú)操作,其中我們?cè)诿绹?guó)創(chuàng)建州首府地圖:
object Main { def main(args: Array[String]) { val stateCapitals = Map( "Alabama" -> "Montgomery", "Alaska" -> "Juneau", "Wyoming" -> "Cheyenne") println( "Get the capitals wrapped in Options:" ) println( "Alabama: " + stateCapitals.get("Alabama") ) println( "Wyoming: " + stateCapitals.get("Wyoming") ) println( "Unknown: " + stateCapitals.get("Unknown") ) println( "Get the capitals themselves out of the Options:" ) println( "Alabama: " + stateCapitals.get("Alabama").get ) println( "Wyoming: " + stateCapitals.get("Wyoming").getOrElse("Oops!") ) println( "Unknown: " + stateCapitals.get("Unknown").getOrElse("Oops2!") ) } }
Map.get方法返回一個(gè) Option [T]
,在這種情況下 T
是String。
通過(guò)返回一個(gè)選項(xiàng),我們不能“忘記”我們必須驗(yàn)證返回的東西。
如果 Option
是 Some
,則 Some.get
返回值。
如果 Option
實(shí)際上是 None
,那么 None.get
將拋出一個(gè) NoSuchElementException
異常。
在最后兩個(gè)println語(yǔ)句中的getOrElse
返回 Option
中的值,如果它是一個(gè) Some
實(shí)例,或者返回傳遞給 getOrElse
的參數(shù),如果它是一個(gè) None
實(shí)例。
getOrElse
參數(shù)作為默認(rèn)返回值。
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)系方式:
更多建議: