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