Option 类是 Scala 中一种常用的用于表示可能存在或不存在值的类型,它有两个子类型:Some 和 None
对于Option类型,可以使用 isDefined 方法来检查值是否存在,或者使用 get 方法来获取 其中的值。
但是,在使用这些方法时,你需要注意如果 Option 类型的值是 None 类型,那么会引发 NoSuchElementException 异常。
使用 getOrElse 方法可以避免引发异常,它会在 Option 类型的值是 None 类型时返回一个默认值。或者可用模式匹配来取值:
val str:Option[String]=Some("test")
str.get //得到“test”
//防报错
str match {
case Some(x)=>x
case None => "NA"
}
//等价于
str.getOrElse("NA")
对于若Option的值为Map类型,还有以下注意点
test("option map 使用"){
val m1=Map("a"->1,"b"->2)
val c1=m1.get("c") //Map本身的get方法,返回Option: Some(value)或None
val m2=Some(Map("a"->1,"b"->2))
val a=m2.get("a") //返回value,key不存在会报错
val c2=m2.get("c") //返回value,key不存在会报错
val m3=m2.get //get 不带参数,是取option里面的值
println(m3)
}