Scala的Option類型
為了讓所有東西都是對象的目標更加一致,也為了遵循函數式編程的習慣,Scala鼓勵你在變量和函數返回值可能不會引用任何值的時候使用Option類型。在沒有值的時候,使用None,這是Option的一個子類。如果有值可以引用,就使用Some來包含這個值。Some也是Option的子類。
None被聲明為一個對象,而不是一個類,因為我們只需要它的一個實例。這樣,它多少有點像null關鍵字,但它卻是一個實實在在的,有方法的對象。
單獨對一個map對象使用get方法,獲取到的是一個Option類,獲取里面的數值,需要再次調用運行一下get方法,例如
1 object Test { 2 def main(args: Array[String]) { 3 val imap=Map(5->"test") 4 val a:Option[Int] = Some(5) 5 val b:Option[Int] = None 6 7 println("a.getOrElse(0): " + imap.get(5).getOrElse(0) ) 8 println("b.getOrElse(10): " + b.getOrElse(10) ) 9 } 10 }
getOrElse會輸出默認值10,如果獲取到則進行輸出
a.getOrElse(0): test b.getOrElse(10): 10