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相关推荐

  1. uwsgi: invalid option -- 'x'

    安装:pip install uwsgi 启动:uwsgi -x 'uwsgi.xml' 报错:uwsgi: invalid option -- 'x' 原因:centos下,在没有安装libxml2 ...

  2. 【转】jQuery获取Select option 选择的Text和Value

    获取一组radio被选中项的值:var item = $('input[name=items][checked]').val(); 获取select被选中项的文本:var item = $(" ...

  3. html选择按钮selected,HTML Option defaultSelected用法及代码示例

    DOM选项defaultSelected属性用于返回所选属性的默认值. HTML中的selected属性用于指定页面加载时默认应选择的选项.这是一个布尔属性.默认情况下,将显示具有所选属性的选项. 用 ...

  4. for循环动态的给select标签添加option内容

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. html <select class="form-control selectpicker&q ...

  5. with admin option /with grant option

    1. with admin option是用在系统权限上的,with grant option是用在对象权限上的. SQL> grant create synonym to scott with ...

  6. no argument specified with option /LIBPATH:错误的解决

    作者:朱金灿 来源:http://blog.csdn.net/clever101 下午使用VS2005编译工程碰到一个链接错误:no argument specified with option &q ...

  7. jquery 获取Select option 选择的Text和Value

    jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关设置 获取一组radio被选中项的值:var item = $(' ...

  8. 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 ...

  9. vbscript input select 添加个option根据value值到指定位置--相当于排序

    '添加option到指定位置(按value排序)dim valindexvalindex=-1for i=0 to selcom.length-1if selcom.Options(i).value ...

  10. command-line: line 0: Bad configuration option: PermitLocalCommand

    废话少说,问题描述与解决 今天在一server上传输文件时,遇到scp error [root@server01 ~]# scp aa.txt  root@192.168.0.1:/home/soft ...

最新文章

  1. python中intvar_在Python线程中使用Intvar/DoubleVar是否安全?
  2. C++实用技巧(三)
  3. (65)如何根据句柄从二级、三级结构句柄表中找到内核对象
  4. 学习官方示例 - SysUtils.EncodeDate、EncodeTime、StrToDate、StrToTime、StrToDateTime
  5. CrossPHP--在我们用ajax,js取不到指定数据时,我们可以换一种方式
  6. html鼠标悬停盒子凸起,css3 transform动画鼠标悬停div容器凸起放大显示
  7. c语言中typeof关键字
  8. 字符的用意_北辰的符号意义 阅读答案
  9. js中window的属性
  10. sql distinct去除重复
  11. 服务器开机显示密码过期,Windows server提示密码过期 更改密码使用期限方法
  12. 行程单批量打印软件(eTerm航空电子客票行程单打印软件)
  13. 《2021政府工作报告》词云图一览
  14. 基于MODIS数据的NDVI与LST相关性分析(IDL代码实现)
  15. CentOS7设置GRUB系统内核开机选单
  16. Unity关于屏幕适配留黑边的做法
  17. 阴阳师双拉条怎么不被超车
  18. sdk烧写flash报error:given target do not exis处理方式
  19. 关于手持设备PDA的开发
  20. IPsec中IKE与ISAKMP过程分析(快速模式-消息2)

热门文章

  1. UI标签库专题六:JEECG智能开发平台 Autocomplete(自动补全标签 )
  2. Q-learning家族【强化学习】
  3. Keras学习手册(一)
  4. hadoop--MapReduce框架原理
  5. spring-boot两小时入门笔记
  6. 如何VMare虚拟机里安装Mac操作系统(图文详解)
  7. 监控磁盘并发mail通知
  8. Hyper-V与VMware的技术特性对比
  9. java导出数据库的结构 表结构 字段信息 主键
  10. C核心技术手册(四十二)