Scala 选项
2018-01-15 17:51 更新
Scala选项
Option 允许我们在没有null“hack”的情况下显式地表达空值。
Option是一个抽象类,它的两个具体子类是Some,当我们有一个值,而None,当我们没有。
例子
您可以在以下示例中查看选项,一些和无操作,其中我们在美国创建州首府地图:
object Main {
def main(args: Array[String]) {
val stateCapitals = Map(
"Alabama" -> "Montgomery",
"Alaska" -> "Juneau",
"Wyoming" -> "Cheyenne")
println( "Get the capitals wrapped in Options:" )
println( "Alabama: " + stateCapitals.get("Alabama") )
println( "Wyoming: " + stateCapitals.get("Wyoming") )
println( "Unknown: " + stateCapitals.get("Unknown") )
println( "Get the capitals themselves out of the Options:" )
println( "Alabama: " + stateCapitals.get("Alabama").get )
println( "Wyoming: " + stateCapitals.get("Wyoming").getOrElse("Oops!") )
println( "Unknown: " + stateCapitals.get("Unknown").getOrElse("Oops2!") )
}
}注意
Map.get方法返回一个 Option [T] ,在这种情况下 T 是String。
通过返回一个选项,我们不能“忘记”我们必须验证返回的东西。
如果 Option 是 Some ,则 Some.get 返回值。
如果 Option 实际上是 None ,那么 None.get 将抛出一个 NoSuchElementException 异常。
在最后两个println语句中的getOrElse返回 Option 中的值,如果它是一个 Some 实例,或者返回传递给 getOrElse 的参数,如果它是一个 None 实例。
getOrElse 参数作为默认返回值。
以上内容是否对您有帮助:




更多建议: