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 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
  • 9237

JAVA_OPTS设置

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

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

Scala新手指南中文版 -第五篇 The Option Type(Option类型) 博客分类:  Scala ScalaFunctional Programming  ...
  • xiao_jun_0820
  • xiao_jun_0820
  • 2015年02月25日 19:02
  • 1610

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

Scala Option(选项)类型用来表示一个值是可选的(有值或无值)。 Option[T] 是一个类型为 T 的可选值的容器: 如果值存在, Option[T] 就是一个 Some[T] ,...
  • Winterto1990
  • Winterto1990
  • 2016年08月03日 17:26
  • 1696

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

Scala新手指南中文版 -第五篇 The Option Type(Option类型) 博客分类:  Scala ScalaFunctional Programming  ...
  • xiao_jun_0820
  • xiao_jun_0820
  • 2015年02月25日 19:02
  • 1610

【protocol buffers】java解析protoBuf custom option自定义扩展文件具体方法

一、前言   由于需要解析自定义扩展,获取对应的信息,方便以后扩展,需要解析,上网找了很久木有找到解决办法,而且官方的文档(https://developers.google.com/protocol...
  • lufeng20
  • lufeng20
  • 2014年01月14日 22:25
  • 6754

详解Scala的Option的模式匹配

详解scala的Option的模式匹配
  • kwu_ganymede
  • kwu_ganymede
  • 2016年05月12日 15:22
  • 1422

拼接option,并给其中一个option赋值

1、jsp页面 //拼接option,并根据前台传递的数据选中其中一个option $(function(){ $.ajax({ url...
  • Ling1604
  • Ling1604
  • 2017年05月24日 10:41
  • 601

protobuf-实践篇

前面两篇文章介绍了 protobuf 的概念用途以及 protobuf 编译器的安装。本章我来写一个简单的例子实践一下 protobuf 。我们知道 protobuf 支持 Java、c++、Pyth...
  • huangjijie123456
  • huangjijie123456
  • 2015年10月25日 22:36
  • 545

兼容ie select option 显示隐藏

一级分类     五险一金     企业服务     员工服务 二级分类 社会保险服务 公积金服务 社保账户服务 公积金账户服务 社保日常服务 公积金日常服务 //将optio...
  • mrhaoxiaojun
  • mrhaoxiaojun
  • 2016年08月16日 12:06
  • 3560
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Option类型
举报原因:
原因补充:

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