Scala学习笔记(七)----Option

基本概念

Java 开发者一般都知道 NullPointerException(其他语言也有类似的东西), 通常这是由于某个方法返回了 null ,但这并不是开发者所希望发生的,代码也不好去处理这种异常。

值 null 通常被滥用来表征一个可能会缺失的值。 不过,某些语言以一种特殊的方法对待 null 值,或者允许你安全的使用可能是 null 的值。

Scala 试图通过摆脱 null 来解决这个问题,并提供自己的类型用来表示一个值是可选的(有值或无值), 这就是 Option[A] 特质。

Option[A] 是一个类型为 A 的可选值的容器: 如果值存在, Option[A] 就是一个 Some[A] ,如果不存在, Option[A] 就是对象 None 。

在类型层面上指出一个值是否存在,使用你的代码的开发者(也包括你自己)就会被编译器强制去处理这种可能性, 而不能依赖值存在的偶然性。

Option 是强制的!不要使用 null 来表示一个值是缺失的。

贴上代码

def commentOnPractice(input:String) = {
          if(input == "test")
            Some("good")  // Some为Option的子类
          else
            None
        }
        for(input <- Set("test","hack"))
        {
          val comment = commentOnPractice(input)
          //getOrElse()方法为Option子类的方法,表示是否取到值
          println("input" + input + "comment" +comment.getOrElse("Found no comment"))
        }


你可能感兴趣的:(scala)