scala中for循环中得模式匹配

scala中最基本的for表达式,跟java是一样的

for(x <- collection) { bibibibibib }

用x来迭代出collection中得每一个元素

在看一些其他的例子

scala> for(i <- List(1,2,3)) println(i)
1
2
3

同时在scala中有变量绑定的概念,我们可以为变量i绑定集合中得一个元素

scala> for([email protected] <- List(1,2,3)) println(i)
2

这样就只能匹配到集合中得2元素了

在scala中,我们可以直接使用for循环中得筛选功能,这里面就有点模式匹配的味道了。

scala> for((name,"female")<- Set("wang"->"male","zhang"->"female","h"->"female")) println(name+" ")
zhang 
h

筛选出集合中都是女性的人的名字

同样,我们还可以使用类型模式在集合中过滤特定类型的元素出来

scala> for((k,v:Int) <- List(("A"->2),("B"->"C"))) {println(k)}
A
时间: 2024-08-23 08:53:48

scala中for循环中得模式匹配的相关文章

PHP中foreach循环中使用引用要注意的地方

发现了一个容易出错,但是不懂得原理却解释不明白的问题,碰到类似问题的朋友可以参考下. 复制代码代码如下: foreach ($array as &$v) {     $v = explode('/', $v); } foreach ($array as $v) {     //do something } 这么写,在第二个循环会出逻辑错误,加入第二个循环中do something的地方是输出$v,循环到最后一个的时候的输出是倒数第二个元素,而不是最后一个 要这么写 复制代码代码如下: forea

python中for循环中的循环变量

废话不多说,代码伺候: for i in range(3): print("hello") print(i) 运行结果如下: 从上面的例子可以看出,for循环里面的循环变量i作用域衍生到循环外面了.说明循环变量i,在遍历完之后值并没有消失,而是保留了最后一个变量的值,而且会覆盖之前变量的值!所以平时在使用的时候变量最好别和模块其他变量重复,否则可能出问题! 原文地址:https://www.cnblogs.com/xiaohaodeboke/p/12128829.html

9*9乘法表中for循环中遇到的一点问题

代码如下: #include <stdio.h> int main() { int x,y; for(x=1;x<=9;x++); { for(y=1;y<=x;y++); printf("%d*%d=%d,",x,y,x*y); printf("\n"); } } 编译通过没什么问题!!但是运行就出问题了!! 当发现去掉for后面的分号就正常啦!

scala学习手记2 - scala中的循环

先来看一段Java中的循环: for (int i = 1; i < 4; i++) { System.out.print(i + ","); } 毫无疑问,scala可以让这个循环更加简洁.根据上一节中的内容,没有必要显示指定变量i的类型,我们甚至不需要声明这个变量.其次输出的语句也可以更加简洁一些,在scala中可以直接使用println()这个方法输出字符串.最后scala的循环结构也是非常的轻量级.好了,可以看一下代码了: for (i <- 1 to 3) { p

js中的循环语句

js中的循环语句可分为三种:1.while:2.do……while:3.for. while的语法为 while (exp) {    //statements;} var a=1,b=0; while(a<=1000){ if(a%2==0){ if(b%20==0) { document.write("<br>第"+parseInt(b/20+1)+"行偶数"); } document.write(a+"&nbsp"

kettle的job中使用循环

 job中使用循环 在一个不稳定的网络环境下作文件传输.偶尔会有超时或连接重置.这时须要稍等片刻再重试.在重试10次之后放弃并结束该job.类似使用循环解决这类问题. 该演示样例job演示了这样的循环场景.文件传输步骤被虚拟的场景(随机数产生成功机率为10%)取代,成功即写日志报告成功.其它90%报告失败日志报告失败并继续,最多执行10次:点击下载演示样例: d 请同意我提醒一句.解决在之前不能确定循环运行次数的的情景下,使用本例中方法.假设是已知的循环次数或循环次数时可计算的,最好在单独的

退出循环break,在while、for、do...while、循环中使用break语句退出当前循环,直接执行后面的代码。

在while.for.do...while循环中使用break语句退出当前循环,直接执行后面的代码. 格式如下: for(初始条件;判断条件;循环后条件值更新) { if(特殊情况) {break;} 循环代码 } 当遇到特殊情况的时候,循环就会立即结束.看看下面的例子,输出10个数,如果数值为5,就停止输出.

python 如何在一个for循环中遍历两个列表

是我在看<笨方法学python>过程中发现有一行代码看不懂——“ for sentence in snippet, phrase:”,所以研究了半天,感觉挺有收获的.所以就放在博客上分享给大家了. 直入主题: 为了不耽误大家时间,如果知道以下为两段代码为什么输出不一样的话我觉得您肯定知道我下面要说的是什么了,您就不必花时间再读下去了. 1和2两段代码的区别是print在for循环中,另外一个是不在循环中.输出的结果却截然不同,如果想要弄懂如何遍历两列表,花些时间把下面的几行代码弄懂.我要说的您

Handlebars.js循环中索引(@index)使用技巧(访问父级索引)

使用Handlebars.js过程中,难免会使用循环,比如构造数据表格.而使用循环,又经常会用到索引,也就是获取当前循环到第几次了,一般会以这个为序号显示在页面上. Handlebars.js中获取循环索引很简单,只需在循环中使用{{@index}}即可. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <META http-equiv=Content-Type content="text/html; charset=utf-