getOrElse(...)
Scala的Option[+A]
类的函数签名的默认返回值类型是斯卡拉:Option.getOrElse(...)
final def getOrElse[B >: A](default: ⇒ B): B
如果我使用的例子
val o1 = Option("Hi")
val o2: Option[String] = Option(null)
println(o1.getOrElse(() => "Else"))
println(o2.getOrElse(() => "Else"))
我得到的输出
Hi
<function0>
斯卡拉API说,大约getOrElse(...)
:
如果选项非空,则返回选项的值,否则返回评估结果
default
。
但是() => "Else")
未被评估。
o2.getOrElse(() => "Else")()
error: Object does not take parameters
o2.getOrElse(() => "Else")()
^
如何评估的结果,为什么它不会自动计算: 结果不能用括号进行评估?
是default: ⇒ B
是否与default:() ⇒ B
相同?
通过名称呼叫是我搜索的,谢谢! – Jojo