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