1. 程式人生 > 其它 >scala 中Option 與getOrElse()方法的使用

scala 中Option 與getOrElse()方法的使用

getOrElse()的字面意思,應該是,當某一個Option型別的呼叫此方法,如果此Option有值,則返回的是就是此值,如果Option型別發變數為None或是NullException,則返回getOrElse(形參a) 中形參a的值。

參照程式碼理解:

scala> val a = Success(true)        // 這裡給a定義為 Success(true)
a: Success[Boolean] = Success(true)

scala> a.getOrElse(false)   // 使用getOrElse()方法獲取a的值,並設定一個預設值
res3: Boolean = true     

scala> a.getOrElse(true)
res4: Boolean = true

scala> a.getOrElse(222)
res7: AnyVal = true
// 這裡a 為Success(true),所以無論穿什麼值給getOrElse()其,返回的都是true
// 因為a已經定義好了,所以在這裡就可以理解成使用的是get()方法,而不用理會其傳入形參值。即get()==getOrElse()


// 但是當b為None時,這時就會使用形參傳入的預設值,即傳入什麼值,就是什麼值。

// 總之 ,可以把這個看成一個 if else 的判斷語句,如果有值,則get 其原來的值;如果沒有值,也就是else(值),返回傳入的形參。
scala> val b = None
b: None.type = None

scala> b.getOrElse(false)
res5: Boolean = false

scala> b.getOrElse(true)
res6: Boolean = true

scala> b.getOrElse(12)
res6: Boolean = 12