我正在尝试使用 Option.getOrElse() 方法。
根据消息来源:
inline fun <R> fold(ifEmpty: () -> R, ifSome: (A) -> R): R = when (this) {
is None -> ifEmpty()
is Some<A> -> ifSome(t)
}
fun <T> Option<T>.getOrElse(default: () -> T): T = fold({ default() }, ::identity)
但是,当我使用返回 type 以外的类型值的 lambda 调用 getOrElse 时T
,它不会显示任何错误编译时间或运行时。
val value1 = Some("val")
// No error
value1.getOrElse { true }
这似乎不对。我究竟做错了什么?