page contents

Option类型的定义和使用场景?

轩辕小不懂 发布于 2021-09-07 15:01
阅读 835
收藏 0
分类:资源下载
1879
Nen
Nen
- 程序员

在Java中,null是一个关键字,不是一个对象,当开发者希望返回一个空对象时,却返回了一个关键字,为了解决这个问题,Scala建议开发者返回值是空值时,使用Option类型,在Scala中null是Null的唯一对象,会引起异常,Option则可以避免。Option有两个子类型,Some和None(空值)

代码示例:

val person: Person = getPersonByIdOnDatabaseUnsafe(id = 4) // 如果没有id=4的person时,返回null对象

println(s"This person age is ${person.age}") //如果是null,抛出异常

val personOpt: Option[Person] = getPersonByIdOnDatabaseSafe(id = 4) // 如果没有id=4的person时,返回None类型

personOpt match {

  case Some(p) => println(s"This person age is ${p.age}")

  case None => println("There is no person with that id")

}

请先 登录 后评论