Scala match
case class SendHeartBeat(id: String, time: Long)
case object CheckTimeOutWorker
// 匹配上第一个之后就不再匹配
object ScalaMatchCse {def main(args: Array[String]): Unit = {// 匹配字符串内容def contentMatch(str: String) = str match {case "aaa" => println("a")case "aaa" => println("b")case "aaa" => println("c")case "aaa" => println("d")case _ => println("没有") // _ 任意内容}contentMatch("aaa")contentMatch("bbb")contentMatch("ccc")contentMatch("ddd")// 匹配数据类型def typeMatch(tp: Any) = tp match {case x: Int => println(s"Int $x")case y: Long => println(s"Long $y")case b: Boolean => println(s"boolean $b")case _ => println("没有")}typeMatch(1)typeMatch(10L)typeMatch(true)typeMatch("Scala")// 匹配Arraydef arrayMatch(arr: Any) = arr match {case Array(0) => println("只有一个0元素的数组")case Array(0, _) => println("以0开头的,第二个元素可以是任意值的数组")case Array(1, _, 3) => println("已1开头,3结尾,中间为任意元素的三个元素的数组")case Array(1, _*) => println("已1开头,N个元素的数组") // _*标识0个或者多个任意类型的数据}arrayMatch(Array(0))arrayMatch(Array(0, "1"))arrayMatch(Array(1, true, 3))arrayMatch(Array(8,9,10,100,666))// 匹配Listprintln("----------匹配List--------")def listMatch(list: Any) = list match {case 0 :: Nil => println("只有一个0元素的List")case 1 :: 2 :: Nil => println("只有1和2元素的List")case x :: y :: z :: Nil => println("只有三个元素的List")case m :: n if n.length > 0 => println("------") // 拥有head,和 tail的数组 if n.length > 0 守卫case _ => println("匹配不上")}listMatch(List(0))listMatch(List(1,2))listMatch(List(3,4,446))listMatch(List(123))// 匹配元组def tupleMatch(tuple: Any) = tuple match {case (0, _) => println("元组的第一个元素为0, 第二个元素为任意类型的数据")case (x, m, k) => println("拥有三个元素的元组")case (_, "AK47") => println("AK47")}tupleMatch((0, 1))tupleMatch(("1", 1, true))tupleMatch((ScalaMatchCse, "ff12"))// 匹配对象def objMatch(obj: Any) = obj match {case SendHeartBeat(x, y) => println(s"$x $y")case CheckTimeOutWorker => println("CheckTimeOutWorker")case "registerWorker" => println("registerWorker")}objMatch(SendHeartBeat("appid0000001", System.currentTimeMillis()))objMatch(SendHeartBeat("xx", 100L))objMatch(CheckTimeOutWorker)objMatch("registerWorker")}
}
Scala match相关推荐
- 【scala初学】scala 控制 for while match if
上一章我们共同研究了for循环以及变种.这章我们围绕比较常用的几个其他控制语句学习. 首先,对for进行补充, For-Comprehensions 格式: for (s ) yield e 举例: ...
- scala中的match详解
Scala中提供了比java,c更加强大的switch语句--match,而且不用担心因为忘记写break语句而发生case穿透 1.更好的switch 与if,类似match也是表达式,如下一个用于 ...
- Scala:try match
Scala:try & match try表达式 match 表达式 try表达式 try表达式的语意与java中try-catch-finally是一样的. 但是try在scala中不是一个 ...
- Spark记录-Scala程序例子(函数/List/match/option/泛型/隐式转换)
object func {def main(args:Array[String]):Unit={//函数赋值给变量时, 必须在函数后面加上空格和下划线.def sayHello(name: Strin ...
- scala 模式匹配 match
文章目录 一.match 基本介绍 二.match 的细节和注意事项 三.模式匹配之条件守卫 四.模式匹配之变量匹配.常量匹配 五.模式匹配之类型匹配 六.模式匹配之数组匹配 七.模式匹配之集合匹配 ...
- scala模式匹配match操作
为什么80%的码农都做不了架构师?>>> match 转载于:https://my.oschina.net/wii01/blog/893566
- Scala中的match(模式匹配)
2019独角兽企业重金招聘Python工程师标准>>> /** 模式匹配 */ case class Class1(param1: String, param2: String) c ...
- scala中的match
match的细节和注意事项: 1)如果所有case都不匹配,那么会执行case_分支,类似于Java中的default语句 2)如果所有case都不匹配,又没有写case_分支,那么会抛出MatchE ...
- 【Scala】9、Trait、Match、CaseClass和偏函数
抽象类和接口的合体trait 1 /* * 1.trait不可以传参 * 2.类继承多个trait的时候 第一个关键字用extends 第二个用with * */ trait Read{def rea ...
最新文章
- 一图理解腾讯本次组织结构重大变革的方向和目的
- Dijkstra的算法
- putty ubuntu服务器 上传文件,教你如何使用PuTTY上传文件?
- Java程序员从笨鸟到菜鸟之(六十七)细谈Spring(一)spring简介
- 《Adobe Illustrator CS4中文版经典教程》—第0课0.11节将外观属性存储为图形样式...
- 安卓入门系列-02创建一个项目
- 用驴子拖宝马——怎样滥用结构体
- 40行中的持久性KeyValue Server和一个可悲的事实
- 字符串操作之字符串连接
- layui登录页面写入数据_layui基本使用(动态获取数据,并把需要的数据传到新打开的窗口)...
- [Leetcode][第392题][JAVA][判断子序列][动态规划][双指针]
- 一个form 如何做两次提交_如何做一个调酒师
- EF安装和更新数据库
- ORAN专题系列-20:5G O-RAN 通过TR-069协议实现一体化小基站的自动配置和安装
- vld/rdy协议 断言
- 颜色的前世今生10·HSB拾色器详解
- faiss-3: 基础模块
- 【R语言】【可视化】 之 维恩图
- 【卷积神经网络】CNN详解以及猫狗识别实例
- 浅析去中心化的商业积分体系
热门文章
- coreldraw中制作蚊香实例_关于CorelDRAW印前排版规范你知道么?
- 从零开始学前端:复习课程 --- 今天你学习了吗?(CSS:Day11)
- Module not found: Error: Can‘t resolve ‘sass-loader‘ in...
- java的scanner使用步骤
- python安装request库_Python——安装requests第三方库
- nginx作用_nginx作用及其配置
- C++之指针探究(十八):typedef结合结构体指针
- android自动化测试录制,(二)屏幕录制在android自动化测试中应用2015.06.29
- vbs把excel文件另存为html,VBS实现将Excel表格保存为txt文本
- python进阶装饰器_Python进阶: 通过实例详解装饰器(附代码)