类型匹配的基本介绍和使用 | 学习笔记

简介: 快速学习类型匹配的基本介绍和使用

开发者学堂课程【Scala 核心编程 - 进阶类型匹配的基本介绍和使用学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/610/detail/9070


类型匹配的基本介绍和使用


基本介绍

可以匹配对象的任意类型,这样做避免了使用 islnstanceOf 和 asInstanceOf 方法。

应用案例

下列代码命名为 MatchTypeDeme01

image.png

//类型匹配,obj 可能有如下的类型

val a=7

//说明 obj 实例的值根据 a 的值来返回

val obj=if(a==1)1

else if(a==2)"2"

else if(a==3)Bigint(3)

else if(a==4)Map("aa"-> 1)

else if(a==5)Map(1 ->"aa")

else if(a==6)Array(1,2,3)

else if(a== 7)Array("aa",1)

else if(a==8) Array("aa")

如果 a=7返回到 Array,如果 a=3返回到 Bigint。

//说明

//1.根据 obj 的类型来匹配

//返回值

val result =obj match {

case a:Int =>a

case b:Map[String,Int]=>"对象是一个字符串-数字的Map集合"

case c:Map[Int,String]=>"对象是一个数字-字符串的Map集合"

case d:Array[String]=>"对象是一个字符串数组"

case e:Array[Int]=>"对象是一个数字数组"

case f:Bigint=>Int MaxValue

case_=>"啥也不是"

}

printin(result)

如果a=7就是 Array("aa",1) 与 case d:Array[String]=>"对象是一个字符串数组"和 case e:Array[Int]=>"对象是一个数字数组"都匹配失败,直接反馈"啥也不是"

如果传入8就是 Array("aa"),将 case d:Array[String]=>"对象是一个字符串数组"改为 case d:Array[String]=>d//"对象是一个字符串数组",运行结果是一个字符串。

注意:

如果在 case 后面是a:就相当于把 obj 的值赋给了a,如果是 Int 类型就将对象返回。Map[String,Int] 与 Map[Int,String] 不是同一类型。

相关文章
|
编译器 C++
手把手教你玩转常用字符串函数(包含模拟实现)
手把手教你玩转常用字符串函数(包含模拟实现)
|
Java API 数据安全/隐私保护
字符串讲解以及一些基础案例的练习
字符串讲解以及一些基础案例的练习
74 0
正则表达式的通用语法以及用法作用
正则表达式的通用语法以及用法作用
147 0
正则表达式的通用语法以及用法作用
|
Scala 开发者
对象匹配基本介绍和快速入门 | 学习笔记
快速学习对象匹配基本介绍和快速入门
|
编译器 Scala 开发者
类型匹配的注意事项和细节 | 学习笔记
快速学习类型匹配的注意事项和细节
|
Scala 开发者
对象匹配的应用案例 | 学习笔记
快速学习对象匹配的应用案例
|
编译器 Scala 开发者
元组的基本介绍和创建 | 学习笔记
快速学习元组的基本介绍和创建
|
Java 程序员 Scala
样例类的基本介绍和使用 | 学习笔记
快速学习样例类的基本介绍和使用
|
数据采集 安全 Go
Python网络爬虫简介与表达式基础|学习笔记
快速学习Python网络爬虫简介与表达式基础
126 0