for循环相关
2024-08-23 03:00:01
循环语句是指令式编程的常见语句,Scala对其加以改进,成为适应函数式风格的利器。
for循环中的变量,没有val或者var,是因为变量的类型,完全是集合中的元素的类型。作用域持续到括号结束。
在scala中,没有continue和break。continue可以用if守卫来完成。
break有一下几种方式:
1.使用Boolean控制变量
2.使用函数return来模拟
3.使用Breaks对象。
for循环中可以定义任意多的生成器,用;隔开,每个生成器,都可以带一个守卫,if 加Boolean表达式,中间不用分号隔开。
For循环也可以有返回值的,返回的是一个List。在每一轮迭代中加入yield,yield后的值可以加入到List中。这种循环成为for推导式,一下是例子:
注意yield前面不能加{}。(否则报错)
1 val file = List("warn 2013 msg", "warn 2012 msg",
2 "error 2013 msg", "warn 2013 msg")
3
4 def wordcount(str: String): Int = str.split(" ").count("msg" == _)
5
6 val counts =
7 for (line <- file)
8 yield wordcount(line)
9
10 val num = counts.reduceLeft(_ + _)
11
12 println("wordcount:" + num)
注意,for推导式生成的元素类型和第一个生成器的类型,是兼容的。
最新文章
- SQL Server 使用全文索引进行页面搜索
- PHP-递归扫描目录和删除目录
- [XAF] 多级联列表显示
- POJ 1917
- mac 80端口映射 配置
- 源码安装Postgresql9.4.1
- 【BZOJ】【4002】【JLOI2015】有意义的字符串
- Jersey(1.19.1) - Building URIs
- 简单的html5 File base64 图片上传
- if exists和if not exists关键字用法
- B - The Suspects -poj 1611
- MFC框架类、文档类、视图类相互访问的方法
- C#_会员管理系统:开发八(权限分配)
- Python的变量参数
- 织云 Metis:看腾讯怎么做智能运维
- 大数据时代,Wyn Enterprise和您一起探讨CIO的困境和出路 ZT
- 洗礼灵魂,修炼python(76)--全栈项目实战篇(4)—— 购物车系统
- 如何安装psutil以及提示缺少python.h头文件
- MVC之路由
- Gym - 100712D Alternating Strings