我想知道我是否可以在我的代码中写这样的东西:
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
关于scala - 您可以为 None 指定类型参数或告诉编译器它是一个 Option[String] 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24793871/