scala教程:Option、Some、None的作用,避免使用null 作者:马育民 • 2021-12-10 14:17 • 阅读:10203 # 说明 为了避免使用 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 ``` 原文出处:http://malaoshi.top/show_1IX2NmQfCDef.html