Option类型
使用Option类型,可以用来有效避免空引用(null)异常。也就是说,将来我们返回某些数据时,可以返回一个Option类型来替代。
定义
scala中,Option类型来表示可选值。这种类型的数据有两种形式:
Some(x):表示实际的值
None:表示没有值
使用getOrElse方法,当值为None是可以指定一个默认值
示例一
示例说明
定义一个两个数相除的方法,使用Option类型来封装结果
然后使用模式匹配来打印结果
不是除零,打印结果
除零打印异常错误
参考代码:
/**
* 定义除法操作
* @param a 参数1
* @param b 参数2
* @return Option包装Double类型
*/
def dvi(a:Double, b:Double):Option[Double] = {
if(b != 0) {
Some(a / b)
}
else {
None
}
}
def main(args: Array[String]): Unit = {
val result1 = dvi(1.0, 5)
result1 match {
case Some(x) => println(x)
case None => println("除零异常")
}
}
结果:
示例二
示例说明
重写上述案例,使用getOrElse方法,当除零时,或者默认值为0
参考代码:
def dvi(a:Double, b:Double) = {
if(b != 0) {
Some(a / b)
}
else {
None
}
}
def main(args: Array[String]): Unit = {
val result = dvi(1, 0).getOrElse(0)
println(result)
}
结果: