这段代码是什么意思?
What is the meaning of this snippet of code?
我正在学习Scala语言,我看不懂这段代码:
for {
i <- Set(2,3)
j <- 1 to i
k <- i to 2 by -1
} yield (j,k)
当 i
是 Set
时,j
是 1 to i
的范围是什么意思?
我建议您阅读有关理解的 Scala 文档 and/or 这个关于 SO 的答案:Confused with the for-comprehension to flatMap/Map transformation
您提供的代码完全等同于以下代码:
Set(2,3)
.flatMap { i =>
(1 to i).flatMap { j =>
(i to 2 by -1).map { k =>
(j,k)
}
}
}
这样,您应该可以更好地看出 i
是集合中的一个“项目”。
我正在学习Scala语言,我看不懂这段代码:
for {
i <- Set(2,3)
j <- 1 to i
k <- i to 2 by -1
} yield (j,k)
当 i
是 Set
时,j
是 1 to i
的范围是什么意思?
我建议您阅读有关理解的 Scala 文档 and/or 这个关于 SO 的答案:Confused with the for-comprehension to flatMap/Map transformation
您提供的代码完全等同于以下代码:
Set(2,3)
.flatMap { i =>
(1 to i).flatMap { j =>
(i to 2 by -1).map { k =>
(j,k)
}
}
}
这样,您应该可以更好地看出 i
是集合中的一个“项目”。