读取 foreach 循环中的行,函数在类似 CSV 的结构化文本文件中通过键查找值。找到特定行后,继续阅读行寻找那里的东西是没有意义的。由于 Scala 中没有 break 语句,如何停止?
问问题
578 次
3 回答
9
Scala 的Source
课程很懒惰。takeWhile
您可以使用or读取字符或行,dropWhile
并且对输入的迭代不需要超出所需的范围。
于 2010-08-31T04:31:44.290 回答
6
扩展兰德尔的答案。例如,如果键在第一列:
val src = Source.fromFile("/etc/passwd")
val iter = src.getLines().map(_.split(":"))
// print the uid for Guest
iter.find(_(0) == "Guest") foreach (a => println(a(2)))
// the rest of iter is not processed
src.close()
于 2010-08-31T06:46:32.783 回答
2
以前的答案假设您想从文件中读取行,我假设您想要一种按需求中断 for 循环的方法。这是解决方案 您可以这样做:
breakable {
for (...) {
if (...) break
}
}
于 2010-08-31T09:38:19.203 回答