我想知道我是否可以在我的代码中写这样的东西:
None[String]
我很惊讶没有人提到它的存在Option.empty
:
scala> Option.empty[String]
res0: Option[String] = None
请注意,在许多情况下只需使用None
其中一个Option[String]
预计会正常工作。
或者换句话说,(如 Aleksey Izmailov 所示),以下是正确的:
def f(o: Option[String]) = ...; f(None)
这是因为None
延伸Option[Nothing]
,所以凭借Option
是协变的(并且Nothing
是所有其他类型的子类型),None
始终兼容Option[T]
对于任何T
.
这也是为什么类型归属也是一个很好的选择(对于您确实需要明确选项类型的情况,例如,如果需要驱动类型推断):
scala> None: Option[String]
res0: Option[String] = None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)