gpt4 book ai didi

scala - Scala中的嵌套迭代

转载 作者:行者123 更新时间:2023-12-03 13:19:08 24 4
gpt4 key购买 nike

以下两个代码片段之间有什么区别(如果有)?

来自Scala编程第7章的示例

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)

最佳答案

在这种情况下没有区别。但是,使用yield时有:

for (
i <- 1 to 2;
j <- 1 to 2
) yield (i, j)


将为您提供一个包含 (1,1)(1,2)(2,1)(2,2)的序列。

for (i <- 1 to 2)
for (j <- 1 to 2)
yield (i, j)


什么也不会给您,因为它会在每次迭代时生成序列 (i,1)(i,2),然后将其丢弃。

关于scala - Scala中的嵌套迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3634897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com