话说模式匹配(5) for表达式中的模式匹配
for 表达式 模式匹配
2023-09-11 14:16:10 时间
scala tb.parse("for(i - List(1,2,3) ) {println(i)}")
res2: tb.u.Tree = List(1, 2, 3).foreach(((i) = println(i)))
再多一点花样,变量绑定:
scala tb.parse("for(i@2 - List(1,2,3) ) {println(i)}") res3: tb.u.Tree = List(1, 2, 3).withFilter(((check$ifrefutable$1) = check$ifrefutable$1: @scala.unchecked match { case (i @ 2) = true case _ = false })).foreach(((x$1) = x$1: @scala.unchecked match { case (i @ 2) = println(i)
将i绑定到常量模式2上,List(1,2,3)中只有2能匹配
下一个例子:
// 过滤出女性的名字 scala for ((name,"female") - Set("wang"- "male","zhang"- "female") ) print(name) zhang
会在两个点做模式匹配,第一个点是从Set中过滤符合条件的元素时,第二个点是对过滤后的集合迭代执行后续逻辑时。
scala tb.parse("for ((name,\"female\") - Set(\"wang\"- \"male\",\"zhang\"- \"female\") ) print(name)") res5: tb.u.Tree = Set("wang".$minus$greater("male"), "zhang".$minus$greater("female")).withFilter(((check$ifrefutable$2) = check$ifrefutable$2: @scala.unchecked match { case scala.Tuple2((name @ _), "female") = true case _ = false })).foreach(((x$2) = x$2: @scala.unchecked match { case scala.Tuple2((name @ _), "female") = print(name)
同样,还可以类型模式在从集合过滤时按类型条件。
scala for((k,v:Int) - List(("A"- 2),("B"- "C"))) {println(k)}文章转自 并发编程网-ifeve.com
相关文章
- 一个由正则表达式引发的血案 vs2017使用rdlc实现批量打印 vs2017使用rdlc [asp.net core 源码分析] 01 - Session SignalR sql for xml path用法 MemCahe C# 操作Excel图形——绘制、读取、隐藏、删除图形 IOC,DIP,DI,IoC容器
- Timus 2005. Taxi for Programmers 题解
- Row Cache For InnoDB 第二版优化(附带安装和配置说明)
- 《C++入门经典(第5版•修订版)》——6.4 for循环
- webpack One CLI for webpack must be installed. These are recommended choices, delivered as separate(webpack报错)
- com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1169 > 1024)
- C语言逗号表达式在for循环语句中的使用
- Yet Another Intro for Symbol
- 【校招Verilog快速入门】基础语法篇:VL8、使用generate…for语句简化代码
- 人脸识别“Neural Aggregation Network for Video Face Recognition”
- version 1.5.2-04 of the jvm is not suitable for this product. version:1.6 or greater is required
- 详解REMOTE_ADDR,HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR
- 解决报错Unable to enable dhcp for xxxx: FailedToDropPrivileges:privsep helper command exited non-zero(1)
- MatrixVT:Efficient Multi-Camera to BEV Transformation for 3D Perception——论文笔记
- Java的流程控制(选择结构语句 if ~ switch &循环结构语句dowhile ~ for)