Scala 選項(xiàng)

2022-05-13 14:26 更新

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)返回值。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)