scala Option 里的 orNull orElse getOrElse 区别和使用

Scala Option

Scala Option类型用来表示一个值是可选的(有值或无值)

Option[T] 是一个类型为 T 的可选值的容器:

  • 如果值存在, Option[T] 就是一个 Some[T] 
  • 如果不存在, Option[T] 就是对象 None

 

Option.orNull

参数:没有(当属性用)

返回:如果Option不为None返回Some的值否则返回null

例一:返回Some的值

scala> val v = Some("Hello Option")
v: Some[String] = Some(Hello Option)

scala> v.orNull
res38: String = Hello Option

例二:返回null

scala> val v = None
v: None.type = None

scala> v.orNull
res39: Null = null

Option.getOrElse(value)

参数:值

返回:如果Option不为None返回Some的值否则返回参数的值

例三:返回Some的值

scala> val v = Some("Hello Option")
v: Some[String] = Some(Hello Option)

scala> v.getOrElse("New Value")
res46: String = Hello Option

例四:返回参数的值

scala> val v = None
v: None.type = None

scala> v.getOrElse("New Value")
res47: String = New Value

 

Option.orElse(Some(value))

返回Option里的Some或从参数传递进去的Some

参数:Some

返回:如果Option不为None返回Some否则返回参数的Some

例五:返回option的Some

scala> val v = Some("Hello Option")
v: Some[String] = Some(Hello Option)

scala> v.orElse(null)
res43: Option[String] = Some(Hello Option)

例六:返回参数的Some

scala> val v = None
v: None.type = None

scala> v.orElse(Some("New Value"))
res44: Option[String] = Some(New Value)

 

posted @   keitsi  阅读(6675)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示