scala Option 里的 orNull orElse getOrElse 区别和使用
Scala Option
Scala Option类型用来表示一个值是可选的(有值或无值)
Option[T] 是一个类型为 T 的可选值的容器:
- 如果值存在, Option[T] 就是一个 Some[T]
- 如果不存在, Option[T] 就是对象 None
Option.orNull
参数:没有(当属性用)
返回:如果Option不为None返回Some的值否则返回null
例一:返回Some的值
scala> val v = Some("Hello Option")
v: Some[String] = Some(Hello Option)
scala> v.orNull
res38: String = Hello Option
例二:返回null
scala> val v = None
v: None.type = None scala> v.orNull
res39: Null = null
Option.getOrElse(value)
参数:值
返回:如果Option不为None返回Some的值否则返回参数的值
例三:返回Some的值
scala> val v = Some("Hello Option")
v: Some[String] = Some(Hello Option)
scala> v.getOrElse("New Value")
res46: String = Hello Option
例四:返回参数的值
scala> val v = None
v: None.type = None scala> v.getOrElse("New Value")
res47: String = New Value
Option.orElse(Some(value))
返回Option里的Some或从参数传递进去的Some
参数:Some
返回:如果Option不为None返回Some否则返回参数的Some
例五:返回option的Some
scala> val v = Some("Hello Option")
v: Some[String] = Some(Hello Option)
scala> v.orElse(null)
res43: Option[String] = Some(Hello Option)
例六:返回参数的Some
scala> val v = None
v: None.type = None scala> v.orElse(Some("New Value"))
res44: Option[String] = Some(New Value)
scala Option 里的 orNull orElse getOrElse 区别和使用的更多相关文章
- Scala Option类型
转载自: Scala 初学者指南, 这里有一系列很棒的文章 类型 Option 可能你已经见过它在 Map API 中的使用:在实现自己的提取器时,我们也用过它, 然而,它还需要更多的解释. 你可能会 ...
- Scala Option 从官方DOC解析
Represents optional values. Instances of Option are either an instance of scala.Some or the object N ...
- scala class和object,trait的区别
Scala类 1 2 3 4 5 6 7 8 9 10 11 12 13 class Counter { private var value = 0 // 必须初始化字段 def increm ...
- jquery里prop和attr的区别
本文通过具体的实例来讲述jquery里prop和attr的区别及使用方法. 在jquery里,我们要获取一个标签元素的属性,可以用attr或者prop,那么两者有什么区别呢? 其实很简单: attr可 ...
- OJ提交题目中的语言选项里G++与C++的区别
一.OJ提交题目中的语言选项里G++与C++的区别 http://www.th7.cn/Program/cp/201405/199001.shtml 首先更正一个概念,C++是一门计算机编程语言,G+ ...
- 说说单节点集群里安装hive、3\5节点集群里安装hive的诡异区别
这几天,无意之间,被这件事情给迷惑,不解!先暂时贴于此,以后再解决! 详细问题如下: 在hive的安装目录下(我这里是 /home/hadoop/app/hive-1.2.1),hive的安装目录的l ...
- jq里attr和prop的区别
jquery中attr和prop的区别 在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这些问题就出现了. 关于它们两个的区别,网上的答 ...
- package.json 里 devDependencies和dependencies的区别
我们在使用npm install 安装模块或插件的时候,有两种命令把他们写入到 package.json 文件里面去,比如: --save-dev --save 在 package.json 文件里面 ...
- OJ提交题目中的语言选项里G++与C++的区别(转)
G++? 首先更正一个概念,C++是一门计算机编程语言,G++不是语言,是一款编译器中编译C++程序的命令而已. 那么他们之间的区别是什么? 在提交题目中的语言选项里,G++和C++都代表编译的方式. ...
随机推荐
- const 常量数据,只读
网上其他的博客地址:1 http://www.cnblogs.com/ronny/p/3672501.html 2 http://www.cnblogs.com/hellogiser/p/cplusp ...
- 【Spark学习】Apache Spark for 第三方Hadoop分发版
Spark版本:1.1.1 本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接: http://www.cnblogs.com/zhangningbo/p/4137979.html
- iPhone各种尺寸
iPhone 6 Plus 736x414 points 2208x1242 pixels 3x scale 1920x1080 physical pixels ...
- Delphi使用FindClass实现动态建立对像(有点像反射)
相关资料:http://www.blogjava.net/nokiaguy/archive/2008/05/10/199739.html { http://www.blogjava.net/nokia ...
- FIREDAC连接SQLITE乱码的解决
在好多群里面都碰到问“FIREDAC连接SQLITE乱码的”的问题的同仁,遂将解决方法贴出来: 如上图所示设置 stringFormat为unicode即可
- c++结束进程的程序
//#include <winbase.h> #include <windows.h> #include <process.h> #include <Tlhe ...
- hdu 4763 Theme Section(KMP水题)
Theme Section Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- How to organize the Template Files in C++
Normally you put class definitions in a header file and method definitions in a source file. Code th ...
- ajax 传参 乱码问题
http://blog.csdn.net/yiyuhanmeng/article/details/7548505 开发一直用firfox网页,调试什么的都很方便.所以遇到了浏览器之间的兼容问题.url ...
- Egret的VS环境搭配
安装配置 首先我们需要安装VS,这里我安装的是2013的版本,然后我们需要去Egret的官网下载Egret Engine.Egret Wing及Egret VS并进行安装,同时下载Google Chr ...