Scala 内置控制结构全解析
1. Scala 的 for 表达式
Scala 的 for 表达式有强大的数据转换能力。以下面代码为例:
val forLineLengths =
for {
file <- filesHere
if file.getName.endsWith(".scala")
line <- fileLines(file)
trimmed = line.trim
if trimmed.matches(".*for.*")
} yield trimmed.length
此代码功能是将 filesHere 数组中所有 .scala 文件进行处理。具体步骤如下:
1. 筛选出 .scala 文件。
2. 对每个 .scala 文件生成行迭代器。
3. 对每行进行去除首尾空格操作。
4. 筛选出包含 for 子串的行。
5. 计算这些行的长度并存储在 forLineLengths 数组中。
不过,编写 for 表达式时要避免语法错误,像下面这种代码是错误的:
for (file <- filesHere if file.getName.endsWith(".scala")) {
yield fil
超级会员免费看
订阅专栏 解锁全文
56

被折叠的 条评论
为什么被折叠?



