Scala 选项
2022-05-13 14:26 更新
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
参数作为默认返回值。
以上内容是否对您有帮助:
更多建议: