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。

举报

相关文章推荐

Scala option类型和偏函数

1. Option类型在Scala中Option类型样例类用来表示可能存在或也可能不存在的值(Option的子类有Some和None)。Some包装了某个值,None表示没有值package cn.t...

Scala 用Option[T] 避免NullPointerException

1.java里的Null Pointer Exception写过一阵子的Java后, 应该会对NullPointerException (NPE)这种东西很熟悉,基本上会碰到这种异常,就是你有一个变量...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

【C#】22. Option类型

Option 定价

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

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

一个Option请求引发的深度解析

在当前项目中,前端通过POST方式访问后端的REST接口时,发现两条请求记录,一条请求的Request Method为Options,另一条请求的Reuest Method为Post。想要解决这个疑惑...

[Scala] 用 Option[T] 来避免 NullPointerException(整理)

转自:https://my.oschina.net/u/200745/blog/69845 前言 Java 里的 Null Pointer Exception 写过一阵子的Java后, 应该会对Nul...

option的添加删除与选中

option的添加删除与选中 #demo{ width: 50%; margin: 20px auto; height: 520px; border: 1p...

db2 +/- options

您可以使用 CLP 运行脚本,任何可以以常规操作处理的方式运行的实用程序(例如每夜运行的 LOAD、RUNSTATS 或者 BACKUP 命令),都可以是一个 CLP 脚本。CLP 的一些选项可以指定...

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

译者注:原文出处http://danielwestheide.com/blog/2012/12/19/the-neophytes-guide-to-scala-part-5-the-option-ty...

option 43和option 60

1. Option 60报文结构 option 60格式如下图所示:      Code   Len   Vendor class Identifier    +-----+-----+---...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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