简介
getOrElse()的字面意思,应该是,当某一个Option类型的调用此方法,如果此Option有值,则返回的是就是此值,如果Option类型发变量为None,则返回getOrElse(形参a) 中形参a的值。
参照代码理解:
scala> val a = Some(true)
a: Some[Boolean] = Some(true)
scala> a.getOrElse(false)
res3: Boolean = true
scala> a.getOrElse(true)
res4: Boolean = true
scala> a.getOrElse(222)
res7: AnyVal = true
// 这里a 为Some(true),所以无论穿什么值给getOrElse()其,返回的都是true
// 也可以理解成使用get()方法,不用理会其传入形参。
// 当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