第27讲:Type、Array、List、Tuple模式匹配实战解析
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,除了普通的×××、字符串类型的模式匹配,scala还提供了很多形式的模式匹配。例如Type、Array、List、Tuple我们通过代码来说明。类型模式匹配:判断传入值的类型 def match
千家信息网最后更新 2025年01月31日第27讲:Type、Array、List、Tuple模式匹配实战解析
除了普通的×××、字符串类型的模式匹配,scala还提供了很多形式的模式匹配。例如Type、Array、List、Tuple
我们通过代码来说明。
类型模式匹配:判断传入值的类型
def match_type(t : Any) = t match { case p : Int => println("It is a Integer!") case p : String => println("It is a String! the content is :"+p) case m : Map[_,_] => m.foreach(println) case _ => println("Unknown Type") } match_type(1) match_type("Spark") match_type(Map("Spark"->"scala language"))
运行结果如下
It is a Integer!It is a String! the content is :Spark(Spark,scala language)
特殊说明Map[_,_]中的两个_,表示任意类型。等同于type Map = Predef.Map[A, B] 但是不能写成Map[Any,Any]
数组模式匹配:
def match_array(arr : Any) = arr match { case Array(x) => println("Array(1):",x) // 长度为1的数组,x代表数组中的值 case Array(x,y) => println("Array(2):",x,y) // 长度为2的数组,x代表数组中的第一个值 case Array(x,_*) => println("任意一维数组:",x) //任意长度数组,取第一个值 case Array(_*) => println("任意一维数组") //任意长度数组 } match_array(Array(0)) match_array(Array("spark")) match_array(Array("spark","scala")) match_array(Array("spark","scala",0,4))
列表匹配:
def match_list(lst : Any) = lst match { case 0 :: Nil => println("List:"+0) //Nil表示空列表 case List(x) => println("List:"+x) case x :: y :: Nil => println("List:"+x) case x :: tail => println("List:"+"多元素List") //tail表示List的剩下所有元素 } match_list(List(0)) match_list(List("spark")) match_list(List("spark","hadoop")) match_list(List("spark",1,2,4,5))
元组匹配
def match_tuple(t : Any) = t match { case (0,_) => println("二元元组,第一个值为0") case (x,y) => println("二元元组,值为:"+x+","+y) case _ => println("something else") } match_tuple((0,'x')) match_tuple(('y','x')) match_tuple((0,1,2,3))
数组
模式
类型
长度
代表
元素
一维
普通
特殊
两个
代码
字符
字符串
形式
结果
运行
实战
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发季度总结
网络安全新技术与产教融合
存货核算月末结账数据库表名
河北放心软件开发
智云服务器
科技圈新旧交替奔向产业互联网
莱芜独畔网络技术有限公司
教学数据库三个基本表
福建秒懂软件开发有限公司
网络安全与素质教育
互联网属于哪一个科技
电脑服务器运行失败该怎么处理
网站服务器无法访问外网
云霄县辰阳网络技术工
运转灵活优质软件开发
网络安全日是哪年设立的
cscd是全文数据库
青浦区技术软件开发中心收费
35岁培训软件开发
超进化物语服务器
协作机器人的市场竞争软件开发
关于网络安全的作文五篇
网络安全安全备课
降低软件开发成本的步骤
软件开发用什么抵扣
中韩电商软件开发
csgo如何寻找服务器
最便宜的软件开发老师
数据库输入日期是按什么格式输入
非接触网络安全防护