Option,Some,None
val m=Map(1->2)println(m(1))println(m.get(1).get)//m.get(1)得到some(2),m.get(1).get得到2println(m.getOrElse(2,"None"))
option\some\none
Scala Option(选项)类型用来表示一个值是可选的(有值或无值)。
Option[T] 是一个类型为 T 的可选值的容器: 如果值存在, Option[T] 就是一个 Some[T] ,如果不存在, Option[T] 就是对象 None 。
看下面一个错误案例,如果Map key获取不到相关的值,会抛出NoSuchElementException异常。
object CaseDemo extends App {val map =Map(1-> "shenzhen",2 -> "shanghai",3->"beijing")val result = map(4)println(result)
}
但是我可以进行一下改造,使用getOrElse就能杜绝抛出异常
val result = map.getOrElse(10,"取不到您输入的key的value")
我们看一下getOrElse源码吧!既然放在这一章讲,那肯定是和模式匹配有关系的!
def getOrElse[B1 >: B](key: A, default: => B1): B1 = get(key) match {case Some(v) => vcase None => default}
Some是啥呢?源码解释了:Class Some[A] represents existing values of type
None是啥呢?源码解释了:This case object represents non-existent values.
也就是说,如果是some就直接返回那个值,如果是none就返回你给定的值。
val grades=Map("张三"->3,"李四"->4)def getGrade(name:String): Unit ={val grade=grades.get(name)grade match {case Some(grade)=>println(name+"your grade is:"+grade)case None=>println("sorry......")}}getGrade("张三")getGrade("PK")
部分转载自:http://bigdata-star.com/archives/1559
https://blog.csdn.net/jsy625/article/details/47082797
Option,Some,None相关推荐
- uwsgi: invalid option -- 'x'
安装:pip install uwsgi 启动:uwsgi -x 'uwsgi.xml' 报错:uwsgi: invalid option -- 'x' 原因:centos下,在没有安装libxml2 ...
- 【转】jQuery获取Select option 选择的Text和Value
获取一组radio被选中项的值:var item = $('input[name=items][checked]').val(); 获取select被选中项的文本:var item = $(" ...
- html选择按钮selected,HTML Option defaultSelected用法及代码示例
DOM选项defaultSelected属性用于返回所选属性的默认值. HTML中的selected属性用于指定页面加载时默认应选择的选项.这是一个布尔属性.默认情况下,将显示具有所选属性的选项. 用 ...
- for循环动态的给select标签添加option内容
微信小程序开发交流qq群 173683895 承接微信小程序开发.扫码加微信. html <select class="form-control selectpicker&q ...
- with admin option /with grant option
1. with admin option是用在系统权限上的,with grant option是用在对象权限上的. SQL> grant create synonym to scott with ...
- no argument specified with option /LIBPATH:错误的解决
作者:朱金灿 来源:http://blog.csdn.net/clever101 下午使用VS2005编译工程碰到一个链接错误:no argument specified with option &q ...
- jquery 获取Select option 选择的Text和Value
jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关设置 获取一组radio被选中项的值:var item = $(' ...
- Using unique option prefix myisam-recover instead of myisam-recover-option
[转载]关于mysql error.log报"Using unique option prefix myisam-recover instead of myisam-recover-opti ...
- vbscript input select 添加个option根据value值到指定位置--相当于排序
'添加option到指定位置(按value排序)dim valindexvalindex=-1for i=0 to selcom.length-1if selcom.Options(i).value ...
- command-line: line 0: Bad configuration option: PermitLocalCommand
废话少说,问题描述与解决 今天在一server上传输文件时,遇到scp error [root@server01 ~]# scp aa.txt root@192.168.0.1:/home/soft ...
最新文章
- python中intvar_在Python线程中使用Intvar/DoubleVar是否安全?
- C++实用技巧(三)
- (65)如何根据句柄从二级、三级结构句柄表中找到内核对象
- 学习官方示例 - SysUtils.EncodeDate、EncodeTime、StrToDate、StrToTime、StrToDateTime
- CrossPHP--在我们用ajax,js取不到指定数据时,我们可以换一种方式
- html鼠标悬停盒子凸起,css3 transform动画鼠标悬停div容器凸起放大显示
- c语言中typeof关键字
- 字符的用意_北辰的符号意义 阅读答案
- js中window的属性
- sql distinct去除重复
- 服务器开机显示密码过期,Windows server提示密码过期 更改密码使用期限方法
- 行程单批量打印软件(eTerm航空电子客票行程单打印软件)
- 《2021政府工作报告》词云图一览
- 基于MODIS数据的NDVI与LST相关性分析(IDL代码实现)
- CentOS7设置GRUB系统内核开机选单
- Unity关于屏幕适配留黑边的做法
- 阴阳师双拉条怎么不被超车
- sdk烧写flash报error:given target do not exis处理方式
- 关于手持设备PDA的开发
- IPsec中IKE与ISAKMP过程分析(快速模式-消息2)