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