scala中的match
match的细节和注意事项:
1)如果所有case都不匹配,那么会执行case_分支,类似于Java中的default语句
2)如果所有case都不匹配,又没有写case_分支,那么会抛出MatchErrot
3)每个case中,不用break语句,自动中断case
4)可以在match中使用其他类型,而不仅仅时字符
5) =>等价于java switch的
6)=>后面的代码块到下一个case,时作为一个整体执行,可以使用{}括起来,也可以不扩。
守卫:
如果想要表达匹配某个范围内的数据,就需要在模式匹配中增加条件守卫
类型匹配
类型匹配注意事项
1)Map[Stringcase(0,_) => "0....." // 表示匹配以0打头的二元组
case(y,0) => y // 表示匹配二元组,但是第二个元素必须为0
scala中的match相关推荐
- scala中的match详解
Scala中提供了比java,c更加强大的switch语句--match,而且不用担心因为忘记写break语句而发生case穿透 1.更好的switch 与if,类似match也是表达式,如下一个用于 ...
- Scala中的match(模式匹配)
2019独角兽企业重金招聘Python工程师标准>>> /** 模式匹配 */ case class Class1(param1: String, param2: String) c ...
- scala中使用Option、Some、None,避免使用null
避免null使用 大多数语言都有一个特殊的关键字或者对象来表示一个对象引用的是"无",在Java,它是null.在Java 里,null 是一个关键字,不是一个对象,所以对它调用任 ...
- 13.10 Scala中使用JSON.toJSONString报错:ambiguous reference to overloaded definition
13.10 Scala中使用JSON.toJSONString报错:ambiguous reference to overloaded definition 问题描述: [ERROR] /Users/ ...
- scala中何时使用下划线_在Scala中使用下划线
scala中何时使用下划线 Underscore (_) character is reserved in Scala and has multiple usages in the programmi ...
- map写法 scala语言_(转)scala中map与flatMap浅析
在函数式语言中,函数作为一等公民,可以在任何地方定义,在函数内或函数外,可以作为函数的参数和返回值,可以对函数进行组合.由于命令式编程语言也可以通过类似函数指针的方式来实现高阶函数,函数式的最主要的好 ...
- Scala中如何优雅的处理Null
前言 如果在scala代码还在使用id! = null,可能会被有的人嘲笑,都什么年代了,竟然还有这样的写法,NullPointerException见少了吧? 不过,据统计: Spark 源代码使用 ...
- 【Scala】Scala中的模式匹配、类型参数与隐式转换
1.模式匹配 (1)概述 模式匹配是Scala中非常有特色,非常强大的一种功能.模式匹配,其实类似于Java中的swich case语法,即对一个值进行条件判断,然后针对不同的条件,进行不同的处理.但 ...
- Scala中TypeTags和Manifests的用法
Scala运行在JVM上,在JVM上有一种机制叫做类型擦除(type eraser).类型擦除是说:在语言的编译阶段程序中所携带的泛型信息都会被擦除,最终生成的class文件中是不包含类型信息的.所以 ...
最新文章
- 沈向、洋周明:神经自然语言处理进展综述:建模,学习,推理
- 【Groovy】MOP 元对象协议与元编程 ( 通过 MetaMethod#invoke 执行 Groovy 方法 )
- zcmu1540(二分)
- HDU 1317 XYZZY(floyd+bellman_ford判环)
- VC 为静态控件添加事件
- Linux下查看/管理当前登录用户及用户操作历史记录
- FusionCharts 的XML标签属性
- CMake 常用命令和变量
- https证书设置以及设置301跳转
- vue打开html自动加载js,vue.js怎么实现懒加载
- 让系统在内存中高速运行
- SSL WSS HTTPS
- 怎么把git代码导入到本地仓库_git在本地仓库添加了一个tag,如何把这个tag同步到远程仓库?...
- Windows/Mac系统MySQL,MySQL驱动下载和安装
- VS2015卸载官方教程
- Logo设计技巧和方法
- 利用Signalr实现手机端App扫码登录web页面
- 新手学编程,是学c还是java呢?
- 宁静以致远——浅析《临江仙.滚滚长江东逝水》
- VMTools安装及使用
热门文章
- JavaScript中Write和Writeln的区别
- 启用计算机浏览器摄像头,如何启用浏览器进行摄像头访问?
- java mediator模式_Java实现中介者模式-Mediator Pattern
- 听飞狐聊JavaScript设计模式系列07
- 三维点云学习(3)1-聚类数学理论
- 修改现有用户帐户的 Microsoft Lync Server 2010 属性
- 删除Flex中TREE组建里的文件夹图标.
- init.x java_详谈jvm--Java中init和clinit的区别
- 头文件malloc.h:函数 mallopt()的选项
- syslog(LOG_ERR, Error: errcode=%d, message=%s, errcode, errmsg);