Scala 选项(Option)
-
选项
Scala Option [T]是给定类型的零个或一个元素的容器。Option [T]可以是Some [T]或None对象,表示缺少值。例如,Scala Map的get方法如果找到了与给定键相对应的值,则生成Some(value);如果Map中未定义给定键,则生成None。选项类型在Scala程序中经常使用,您可以将其与Java中可用的空值(表示无值)进行比较。例如,java.util.HashMap的get方法返回存储在HashMap中的值,如果未找到任何值,则返回null。假设我们有一个基于主键从数据库中检索记录的方法。如果找到记录,该方法将返回Some [Person],如果找不到记录,则返回None。让我们遵循以下程序。输出-将可选值分开的最常见方法是通过模式匹配。例如,尝试以下程序。输出: -
-
-
Scala 选项方法
以下是在使用Option时可以使用的重要方法。有关可用方法的完整列表,请查看Scala的参考手册。方法 描述 def get: A 返回选项的值。 def isEmpty: Boolean 如果选项为None,返回true,否则返回false。 def productArity: Int 这个产品的尺寸。对于产品a (x_1,…, xk),返回k def productElement(n: Int): Any 乘积的第n个元素,以0为基。换句话说,对于乘积a (x_1,…, x_k)返回x_(n+1),其中0 < n < k。 def exists(p: (A) => Boolean): Boolean 如果该选项为非空,则返回true;如果谓词p应用于该选项的值,则返回true。否则,返回false。 def filter(p: (A) => Boolean): Option[A] 如果非空,则返回该选项,并将谓词p应用于该选项的值将返回true。否则,返回None。 def filterNot(p: (A) => Boolean): Option[A] 如果非空,则返回该选项,并将谓词p应用于该选项的值将返回false。否则,返回None。 def flatMap[B](f: (A) => Option[B]): Option[B] 如果该选项非空,则返回对该选项的值应用f的结果。如果此选项为空,则返回None。 def foreach[U](f: (A) => U): Unit 如果选项的值是非空的,则应用给定的过程f。否则,什么都不做。 def getOrElse[B >: A](默认: => B): B 返回选择的值如果非空的选项,否则返回的结果评估默认 def isDefined: Boolean 如果选项是某个实例,则返回true,否则返回false。 def iterator: Iterator[A] 如果非空,返回一个单例迭代器,返回选项的值;如果选项为空,返回一个空迭代器。 def map[B](f: (A) => B): Option[B] 如果该选项非空,则返回包含应用f到该选项值的结果的Some。否则返回None。 def orElse[B >: A](alternative: => Option[B]): Option[B] 如果非空则返回此选项,否则返回alternative的计算结果。 def orNull 如果非空,则返回选项的值;如果为空,则返回null。