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