Match 基本介绍和快速入门 | 学习笔记

简介: 快速学习 Match 基本介绍和快速入门

开发者学堂课程【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.创建

image.png

新建一个章节,命名为 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.应用案例

相关文章
|
运维 数据可视化 Linux
云计算|OpenStack|社区版OpenStack安装部署文档(七--- 仪表盘服务dashboard的安装部署---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(七--- 仪表盘服务dashboard的安装部署---Rocky版)
409 0
|
6月前
|
消息中间件 存储 Kafka
一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
本文详细介绍了分布式消息中间件RocketMQ的核心概念、部署方式及使用方法。RocketMQ由阿里研发并开源,具有高性能、高可靠性和分布式特性,广泛应用于金融、互联网等领域。文章从环境搭建到消息类型的实战(普通消息、延迟消息、顺序消息和事务消息)进行了全面解析,并对比了三种消费者类型(PushConsumer、SimpleConsumer和PullConsumer)的特点与适用场景。最后总结了使用RocketMQ时的关键注意事项,如Topic和Tag的设计、监控告警的重要性以及性能与可靠性的平衡。通过学习本文,读者可掌握RocketMQ的使用精髓并灵活应用于实际项目中。
5016 9
 一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
|
9月前
|
SQL 人工智能 自然语言处理
DataV Note | 又在为年终报告头疼?让 AI 成为你的得力助手!
DataV Note | 又在为年终报告头疼?让 AI 成为你的得力助手!
268 2
|
10月前
|
存储 运维 监控
首次!阿里云可观测技术论文登上两大国际顶会
首次!阿里云可观测技术论文登上两大国际顶会
268 1
|
机器学习/深度学习 人工智能 测试技术
探索软件测试的未来:AI与自动化的融合之路
【9月更文挑战第9天】随着技术的飞速发展,软件测试领域正经历着一场革命。本文将深入探讨人工智能(AI)和自动化技术如何重塑软件测试的未来,提升测试效率,确保软件质量。我们将从AI在测试中的应用、自动化测试的优势,到两者结合带来的创新方法进行详细分析,旨在为读者提供一条清晰的路径,以理解并利用这些先进技术优化测试流程。
|
JavaScript
Node.js的安装
这篇文章提供了Node.js的安装指南,包括从官网下载、安装步骤、验证安装是否成功,以及如何安装淘宝镜像加速器cnpm或使用淘宝npm镜像来加速npm包的安装过程。
Node.js的安装
Echarts自定义tooltip显示内容(隐藏小圆点)
Echarts自定义tooltip显示内容(隐藏小圆点)
1155 0
|
存储 弹性计算 负载均衡
阿里云是干什么用的?
阿里云是用来进行云计算的,是阿里巴巴集团旗下的云计算品牌,创立于2009年。云计算,是用足够的低成本、商业化的模式来解决大计算的问题。用户通过阿里云,用互联网的方式即可远程获取海量计算、存储资源和大数据处理能力。
8084 0
|
并行计算 Ubuntu C语言
双系统windows + ubuntu20.04 + cuda11 三部曲
双系统windows + ubuntu20.04 + cuda11 三部曲
392 0
|
开发框架 前端开发 JavaScript
LayUI的使用
LayUI的使用
671 0