W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Option
允許我們在沒有null“hack”的情況下顯式地表達空值。
Option是一個抽象類,它的兩個具體子類是Some,當我們有一個值,而None,當我們沒有。
您可以在以下示例中查看選項,一些和無操作,其中我們在美國創(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方法返回一個 Option [T]
,在這種情況下 T
是String。
通過返回一個選項,我們不能“忘記”我們必須驗證返回的東西。
如果 Option
是 Some
,則 Some.get
返回值。
如果 Option
實際上是 None
,那么 None.get
將拋出一個 NoSuchElementException
異常。
在最后兩個println語句中的getOrElse
返回 Option
中的值,如果它是一個 Some
實例,或者返回傳遞給 getOrElse
的參數(shù),如果它是一個 None
實例。
getOrElse
參數(shù)作為默認返回值。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: