scala的Option

简介:

当一个函数既要返回对象,又要返回null的时候,使用Option[]

http://www.runoob.com/scala/scala-options.html

Option是scala的选项,用来表示一个键是可选的(有值或者无值),比如判断一个map是否有值,可以直接使用get(xxx) ,返回的就是Option[String]

Option[]有两个衍生值,一个是Some[],一个是None

final case class Some[+A](x: A) extends Option[A] {
  def isEmpty = false
  def get = x
}


case object None extends Option[Nothing] {
  def isEmpty = true
  def get = throw new NoSuchElementException("None.get")
}

实际上他们就是对isEmpty和get进行了分别的设置。

一般在获取出来的时候使用switch方法

   def show(x: Option[String]) = x match {
      case Some(s) => s
      case None => "?"
   }

Option有getOrElse()的方法,如果有数据,返回get里面的方法,如果没有数据就返回默认的数值。


本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/p/7844276.html,如需转载请自行联系原作者

相关文章
|
8月前
|
分布式计算 Java 大数据
Scala:样例类、模式匹配、Option、偏函数、泛型(三)
Scala:样例类、模式匹配、Option、偏函数、泛型(三)
87 0
|
安全 程序员 API
深入探索Scala的Option
深入探索Scala的Option
|
Scala
Scala系列之样例类_Option_偏函数
  在Scala中Option类型样例类用来表示可能存在或也可能不存在的值(Option的子类有Some和None)。Some包装了某个值,None表示没有值。 object OptionDemo {  def main(args: Array[String]) {    val map = Map("a" -> 1, "b" -> 2)    val v = map.
768 0
|
Scala 容器 分布式计算
|
Scala
scala中Option和Some
Option的解释: Represents optional values. Instances of Option are either an instance of scala.Some or the object None.
1568 0
|
3月前
|
分布式计算 大数据 Java
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
79 5
|
3月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
60 3
|
3月前
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
54 0
|
3月前
|
消息中间件 存储 分布式计算
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
110 0
|
3月前
|
分布式计算 大数据 Java
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
50 1
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方