说明
为了避免使用 null,以及 避免 非 null 校验,scala推荐使用 Option、Some、None
使用
Option:用于声明泛型Some:是Option的子类,当有值时,用Some(x)封装None:是Option的子类,当 值为null时,用None
取值方法1
getOrElse(默认值):Some.getOrElse(默认值):返回 封装的值None.getOrElse(默认值):返回 默认值
取值方法2
get:Some.get:返回 封装的值None.get:抛错:throw new NoSuchElementException("None.get")
例子
val l: List[Option[Int]] = List(Some(1), Some(2), None)
var sum=0
for(i <- l){
// 避免null,也不需要做非null校验
println(i+"--"+i.getOrElse(0))
sum+=i.getOrElse(0)
}
println("sum=="+sum)
执行结果:
some(1)--1
some(2)--2
None--0