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

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

开发者学堂课程【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] 不是同一类型。

相关文章
|
8天前
|
数据采集 算法 Java
Java 正则表达式【匹配与分组基本原理】
Java 正则表达式【匹配与分组基本原理】
|
8天前
|
数据采集 Java API
Java 正则表达式【非贪婪匹配、格式验证、反向引用、API】
Java 正则表达式【非贪婪匹配、格式验证、反向引用、API】
|
前端开发
前端学习案例4-正则概述-字符组的简写
前端学习案例4-正则概述-字符组的简写
41 0
前端学习案例4-正则概述-字符组的简写
|
前端开发
前端学习案例2-正则概述-字符组和非字符组1
前端学习案例2-正则概述-字符组和非字符组1
58 0
前端学习案例2-正则概述-字符组和非字符组1
|
前端开发
前端学习案例3-正则概述-字符组和非字符组2
前端学习案例3-正则概述-字符组和非字符组2
54 0
前端学习案例3-正则概述-字符组和非字符组2
|
Scala 开发者
对象匹配基本介绍和快速入门 | 学习笔记
快速学习对象匹配基本介绍和快速入门
98 0
|
编译器 Scala 开发者
类型匹配的注意事项和细节 | 学习笔记
快速学习类型匹配的注意事项和细节
60 0
|
Scala 开发者
对象匹配的应用案例 | 学习笔记
快速学习对象匹配的应用案例
41 0
|
编译器 Scala 开发者
元组的基本介绍和创建 | 学习笔记
快速学习元组的基本介绍和创建
69 0
|
存储 Go 开发者
字符类型基本使用|学习笔记
快速学习字符类型基本使用。
55 0

热门文章

最新文章