Scala 中的 foreach 循环
-
在 Scala 中使用
foreach
循环 -
在 Scala 中使用带有
until
标志的foreach
循环 -
在 Scala 中使用带有
if
条件的foreach
循环 -
在 Scala 中使用
foreach
循环和yield
-
在 Scala 中使用
foreach
循环迭代列表 -
使用 Scala 的
foreach
() 函数 -
在 Scala 中使用带有 Vector 的
foreach
函数
foreach
是一个循环,用于迭代对象/容器的元素。本教程将讨论 foreach
循环并学习如何在 Scala 中实现它。
在 Scala 中使用 foreach
循环
Scala 提供了一个 foreach()
函数来遍历列表元素。我们创建了一个 foreach
循环,该循环将数值遍历到此示例中的指定限制。
循环需要两个参数,第一个是循环的开始,第二个是结束。
例子:
object MyClass {
def main(args: Array[String]) {
print("for loop iterating...\n")
for( a <- 1 to 3 ){
println(a);
}
}
}
输出:
for loop iterating...
1
2
3
在 Scala 中使用带有 until
标志的 foreach
循环
我们将创建一个带有 until
标志的 foreach
循环来遍历数值。它在迭代元素但不包括最后一个元素时很有用。
循环需要两个参数,第一个是循环的开始,第二个是 until
关键字。
例子:
object MyClass {
def main(args: Array[String]) {
print("for loop iterating...\n")
for( a <- 1 until 3 ){
println(a);
}
}
}
输出:
for loop iterating...
1
2
在 Scala 中使用带有 if
条件的 foreach
循环
如果要在遍历时过滤数据,可以将 if
条件与循环表达式一起使用。这是 Scala 使用简洁代码获取过滤数据的方法。
在下面的代码片段中,我们只在循环中使用了 if
条件来获取偶数值。
例子:
object MyClass {
def main(args: Array[String]) {
print("for loop iterating...\n")
for( a <- 1 to 10 if a%2==0 ){
println(a);
}
}
}
输出:
for loop iterating...
2
4
6
8
10
在 Scala 中使用 foreach
循环和 yield
如果你想在遍历而不是遍历和显示元素后获取项目集合,请在循环中使用 yield
关键字。
yield
关键字返回相同遍历类型的集合,这意味着 map 返回 map,list 返回一个列表。在这里,我们遍历数值并在循环迭代后得到一个向量。
例子:
object MyClass {
def main(args: Array[String]) {
print("for loop iterating...\n")
var result = for( a <- 1 to 5) yield a
print(result)
}
}
输出:
for loop iterating...
Vector(1, 2, 3, 4, 5)
在 Scala 中使用 foreach
循环迭代列表
除了命令式使用之外,我们还可以使用 foreach
循环来迭代列表元素。在使用内置集合时,我们不需要指定循环的任何端点或 until
关键字,因为 Scala 解释器会处理它并在集合中没有元素时退出循环。
例子:
object MyClass {
def main(args: Array[String]) {
print("for loop iterating...\n")
var list = List(1,52,35,6,8,9)
for( i <- list){
println(i)
}
}
}
输出:
for loop iterating...
1
52
35
6
8
9
使用 Scala 的 foreach
() 函数
Scala 在 List 类中提供了一个内置的 foreach()
函数来迭代列表元素,因此我们不再需要使用循环。作为参数,此函数接受 lambda 表达式并返回结果。
在这里,我们将 print 语句传递给 foreach()
以将元素打印到控制台。
例子:
object MyClass {
def main(args: Array[String]) {
print("for loop iterating...\n")
var list = List(1,52,35,6,8,9)
list.foreach(println)
}
}
输出:
for loop iterating...
1
52
35
6
8
9
下面是另一个示例,我们只需传递一个表达式即可获得列表中所有元素的总和。我们通过表达式来获得总和而不是打印语句。
object MyClass {
def main(args: Array[String]) {
var sum = 0;
print("for loop iterating...\n");
var list = List(1,5,35,6,8,9);
list.foreach(sum += _)
print(sum);
}
}
输出:
for loop iterating...
64
在 Scala 中使用带有 Vector 的 foreach
函数
我们可以类似地使用带有 Vector 的 foreach
函数来遍历元素。Vector 是 Scala 中的一个序列,它将元素保存在键值对中。
例子:
object MyClass {
def main(args: Array[String]) {
print("foreach loop iterating...\n");
val nums = Vector((1,8), (2,9), (3,7), (4,6), (5,5))
nums.foreach {
case(key, value) => println(s"key: $key, value: $value")
}
}
}
输出:
foreach loop iterating...
key: 1, value: 8
key: 2, value: 9
key: 3, value: 7
key: 4, value: 6
key: 5, value: 5