开发者学堂课程【Scala 核心编程 - 进阶:Match 基本介绍和快速入门】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/610/detail/9066
Match 基本介绍和快速入门
内容介绍:
一.基本介绍
二、入门案例
三、小结
一、基本介绍
1. 功能
Scala 中的模式匹配类似于 Java 中的 switch 语法,但是更加强大。
2. 运用方法
模式匹配语法中,采用 match 关键字声明,原先 Java 采用的是 switch case 。
而它每个分支采用 case 关键字进行明,当需要匹配时,会从第一个 case 分支开始,如果匹配成功,那么执行应的逻辑代码,如果匹配不成功,继续执行下一个分支进行判断。
如果所有 case 都不匹配,那么会执行 case _分支,类似于 Java 中 default 语句。
3. 运用
Scala 中的模式匹配非常相似,前面有一个oper 变量,后面是oper match case一系列代码。
它的意思是如果oper匹配+号,那么就执行+号后面的代码,注意+号后的代码没有break ,因为它自动结束。
在写代码时,执行完毕就可以退出,减号乘号除号分别对应各自后面的代码。
如果都没有匹配成功,则对应最后一个下划线。此时下划线的含义发生变化,最初的含义是一个默认的值,第二个含义是一个默认的函数不赋予另一个变量,这里的下划线代表默认,即都匹配不成功时,还有下划线可以使用。
val oper =‘#’
val n1 = 20
val n2 = 10
val res = 0
oper match {
case‘+’=> res = n1 +n2
case ‘-’=> res = n1 -n2
case ‘*’=> res = n1 *n2
case ‘/’=> res = n1 /n2
case _=>println(“oper error”)
}
Println(“res=”+res)
二、入门案例
1.创建
新建一个章节,命名为 chapter 12,案例命名为MatchDemo01 ,赋予它 object ;
2.说明
运行一段总函数:
val oper =‘#’
val n1 = 20
val n2 = 10
val res = 0
oper match {
case‘+’=> res = n1 +n2
case ‘-’=> res = n1 -n2
case ‘*’=> res = n1 *n2
case ‘/’=> res = n1 /n2
case _=>println(“oper error”)
}
Println(“res=”+res)
//说明
//1、Match (类似 Java switch ) 和 case是关键字,(不能更改)
//2、如果匹配成功,就执行=>后面的代码。代码可以是代码块,也可以是一句话。
一句话的表示如:
case‘+’=> {
res = n1 +n2
}
如果是几句话,可以用大括号括起来。如果多句话,不使用大括号,使用下面的方式也可以。
case‘+’=> {
res = n1 +n2
println(“hello”)
如果成功运行,则res =n1 +n2 println(“hello”)自动默认为一个整体。与Java 中的多语句须使用括号不同。
//3、匹配的顺序是从上到下,匹配到一个符号就执行对应的代码。
//4、=> 后面的代码块,不要写break, 会自动的退出 match
//5、如果一个都没有匹配成功,则执行case _后面的代码块
下面开始执行“#”,可以看到没有对应的代码块,所以会匹配下划线后面的代码块,即 oper error
修改要执行的代码为减号,那么最后的结果应该是10。
三、小结
1.基本介绍
2.应用案例
