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


posted @ 2022-05-06 16:04  岁月时间  阅读(294)  评论(0编辑  收藏  举报