类型匹配的注意事项和细节 | 学习笔记

简介: 快速学习类型匹配的注意事项和细节

开发者学堂课程【Scala 核心编程 - 进阶类型匹配的注意事项和细节学习笔记,与课程紧密连接,让用户快速学习知识。

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


类型匹配的注意事项和细节


1.Map[String,Int]和Map[Int,String]是两种不同的类型,其它类推。

2.在进行类型匹配时,编译器会预先检测是否有可能的匹配,如果没有则报错。

案例:

val obj=10

val result=obj match{

case a:Int=>a

case b:Map[String.Int]=>"Map集合"

case _=>"啥也不是"

}

新建命名为 MatchTypeDetail,放入上方代码直接报错,编译器检测 case b:Map[String.Int]=>"Map集合"没有可能性,没有意义直接报错。

3.一个说明

val result=obj match {

case i:Int=>i

}case i:lnt=>i表示将i=obj(其它类推),然后再判断类型

4.如果 case_出现在match中间,则表示隐藏变量名。即不使用,而不是表示默认匹配。

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

val a=7

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")

val result=obj match{

case a:Int =>a

case k : Bigint => Int.MaxValue //看这里!

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

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

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

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

case _=>"啥也不是"

}

printin(result)

case k : Bigint => Int.MaxValue //看这里!可以直接写成 case _ : Bigint => Int.MaxValue //看这里!即隐藏变量名。

相关文章
|
Java 编译器
【JAVASE】类与对象 下
【JAVASE】类与对象
|
传感器
stm32f407探索者开发板(二十二)——通用定时器基本原理讲解
stm32f407探索者开发板(二十二)——通用定时器基本原理讲解
1541 0
|
机器学习/深度学习 缓存 运维
智能化运维:机器学习在故障预测与自动修复中的应用
随着信息技术的飞速发展,企业系统日益复杂,传统运维模式面临巨大挑战。智能化运维作为一种新兴趋势,通过集成机器学习算法,实现对系统故障的预测和自动修复,显著提高运维效率与准确性。本文深入探讨了智能化运维的概念、关键技术及其在故障预测和自动修复方面的应用实例,旨在为读者提供一种科学严谨、数据导向的视角,理解智能化运维的价值与实践路径。
555 27
|
存储 安全 数据安全/隐私保护
安全升级!Python AES加密实战,为你的代码加上一层神秘保护罩
【8月更文挑战第2天】数据安全至关重要,AES加密作为对称加密的标准之一,因其高效性与灵活性被广泛采用。本文通过实战演示Python中AES的应用,使用pycryptodome库进行安装及加密操作。示例代码展示了生成随机密钥与初始化向量(IV)、对数据进行加密及解密的过程。注意事项包括密钥管理和IV的随机性,以及加密模式的选择。掌握AES加密能有效保护敏感数据,确保信息安全无虞。
414 6
|
XML 安全 Java
【Maven】依赖管理,Maven仓库,Maven核心功能
【Maven】依赖管理,Maven仓库,Maven核心功能
2042 3
HTML 表格3
HTML 表格的表头使用 `<th>` 标签定义,通常以粗体居中显示。
|
SQL 关系型数据库 MySQL
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
707 0
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
|
JavaScript 算法 安全
实战案例浅析JS加密 - RSA与XXTEA
实战案例浅析JS加密 - RSA与XXTEA
334 0
AD20和立创EDA设计(2)提取立创EDA的原理图库和PCB库
AD20和立创EDA设计(2)提取立创EDA的原理图库和PCB库
849 0