15
下面两个代码片段之间有什么区别(如果有的话)?从编程的Ch7的我的ScalaScala中的嵌套迭代
def grep(pattern: String) =
for (
file <- filesHere
if file.getName.endsWith(".scala");
line <- fileLines(file)
if line.trim.matches(pattern)
) println(file + ": " + line.trim)
实施例和这一个
def grep2(pattern: String) =
for (
file <- filesHere
if file.getName.endsWith(".scala")
) for (
line <- fileLines(file)
if line.trim.matches(pattern)
) println(file + ": " + line.trim)
或者
for (i <- 1 to 2)
for (j <- 1 to 2)
println(i, j)
和
for (
i <- 1 to 2;
j <- 1 to 2
) println(i, j)
我认为变种只是语法不同。 Scala语言规范(v.2.8)的第6.19节定义了如何重写循环。 http://www.scala-lang.org/sites/default/files/linuxsoft_archives/docu/files/ScalaReference.pdf#page=97 – mkneissl 2010-09-03 11:06:21
搜索有关Scala和收益率的问题。其中之一应该解释Scala中'for'的工作原理。 – 2010-09-03 18:40:42