Option类型

转载 2015年11月19日 16:29:36

Scala语言中包含一个标准类型Option类型,代表可选值,Option类型的值可以有两个可能的值,一个为some(x) 其中x为有效值,另外一个为None对象,代表空值。
Option类型的值通常作为Scala集合类型(List,Map等)操作的返回类型。 比如Map的get方法:

scala> val capitals = Map("France"->"Paris", "Japan"->"Tokyo","China"->"Beijing")
capitals: scala.collection.immutable.Map[String,String] = Map(France -> Paris, Japan -> Tokyo, China -> Beijing)

scala> capitals get "France"
res0: Option[String] = Some(Paris)

scala> capitals get "North Pole"
res1: Option[String] = None

将Option类型的值放开的一种常见的方法是使用模式匹配:

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

show: (x: Option[String])String

scala> show (capitals get "China")
res3: String = Beijing

scala> show (capitals get "France")
res4: String = Paris

scala> show (capitals get "North Pole")
res5: String = ?

Scala程序使用Option非常频繁,在Java中使用null 来表示空值,代码中很多地方都要添加Null检测,不然很容易出现NullPointException. 因此Java程序需要关心那些变量可能是Null,而这些变量出现Null的可能性很低,但一但出现,很难查出为什么出现NullPointerException.
Scala的Option类型可以避免这种情况,因此Scala应用推荐使用Option类型来代表一些可选值。使用Option类型,读者一眼就可以看出这种类型的值可能为None。

相关文章推荐

JAVA_OPTS设置

JAVA_OPTS ,顾名思义,是用来设置JVM相关运行参数的变量。   JVM:JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss512k" -serv...
  • kongls08
  • kongls08
  • 2013年01月05日 14:49
  • 88594

Java Options

Sample :When encountered this error  in running java(the java is calling from shell scripts) :java.l...
  • dingxy
  • dingxy
  • 2008年12月03日 18:03
  • 8734

Scala中常见的容器 Option(选项)

Scala Option(选项)类型用来表示一个值是可选的(有值或无值)。 Option[T] 是一个类型为 T 的可选值的容器: 如果值存在, Option[T] 就是一个 Some[T] ,...

Scala新手指南中文版 -第五篇 The Option Type(Option类型)

Scala新手指南中文版 -第五篇 The Option Type(Option类型) 博客分类:  Scala ScalaFunctional Programming  ...

java中Logger.getLogger(Test.class)

java中Logger.getLogger(Test.class) log4的使用方法: log4是具有日志记录功能,主要通过一个配置文件来对程序进行监测 有两种配置方式:一种程序配置,一...

【JAVA】数据交换,java方法参数

还是先看题吧: package test.java; public class test8 {     static String a = "yes";     static String b ="...
  • Tastill
  • Tastill
  • 2017年08月16日 11:47
  • 75

5.3.4 F# 中使用选项(option)类型

5.3.4 F# 中使用选项(option)类型       我们常常需要描述这样的理念,某些计算可能会返回未定义的值。在 C# 中,通常用返回 null(空值)实现。不幸的是,使用 null...
  • hadstj
  • hadstj
  • 2011年04月24日 14:43
  • 341

【C#】22. Option类型

Option 定价

siense step7 5.4 option(仿真)

  • 2015年08月07日 22:49
  • 54.27MB
  • 下载

CM602 影响速度的OPTION

  • 2014年11月25日 12:38
  • 441KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Option类型
举报原因:
原因补充:

(最多只允许输入30个字)