Scala for 循环

2024 年 8 月 29 日 | 阅读 3 分钟

在 scala 中,for 循环被称为 for-comprehensions。 它可以用来迭代,过滤和返回一个迭代集合。 for-comprehension 看起来有点像命令式语言中的 for 循环,除了它构造了一个包含所有迭代结果的列表。

语法

在上面的语法中,range 是一个具有开始结束点的数值。 您可以使用 tountil 关键字传递 range。


使用 to 关键字的 Scala for-loop 示例

输出

1
2
3
4
5
6
7
8
9
10

在下面的示例中,使用 until 代替 tountilto 之间的主要区别在于,to 包含范围中给出的开始和结束值,而 until 排除范围的最后一个值。 因此,以下示例将仅打印 1 到 9。

使用 until 关键字的 Scala for-loop 示例

输出

1
2
3
4
5
6
7
8
9

当你迭代字符串或数组时,使用 until 关键字很有帮助,因为数组的范围是 0 到 n-1。 until 不会超过 n-1。 所以,你的代码不会抱怨上限范围。


Scala for-loop 过滤示例

你可以使用 for 来过滤你的数据。 在下面的示例中,我们通过传递一个条件表达式来过滤我们的数据。 此程序仅打印给定范围内的偶数值。

输出

2
4
6
8
10

使用 yield 关键字的 Scala for-loop 示例

在上面的示例中,我们使用了 yield 关键字,该关键字在循环迭代完成后返回结果。 for 在内部使用缓冲区来存储迭代结果,并在完成所有迭代后从该缓冲区产生最终结果。 它不像命令式循环那样工作。

输出

1
2
3
4
5
6
7
8
9
10

Scala for-loop 在集合中

在 scala 中,你可以使用 for-each 循环或 for-comprehensions 来迭代列表、序列等集合。

让我们看一个示例。

Scala for- 循环迭代集合示例

输出

1
2
3
4
5
6
7
8
9
10

Scala for-each 循环迭代集合示例

在下面的代码中,我们使用了三种 for-each 循环方法。 你可以根据你的需要实现它们中的任何一种。

输出

1
2
3
4
5
6
7
8
9
123456789
1 2 3 4 5 6 7 8 9

使用 by 关键字的 Scala for-loop 示例

在上面的示例中,我们使用了 by 关键字。 by 关键字用于跳过迭代。 当你编写类似: by 2 的代码时,这意味着此循环将跳过循环的所有偶数迭代。

输出

1
3
5
7
9
下一个主题Scala Break