Das yield-Schlüsselwort in der Programmiersprache Scala
In diesem Artikel lernen wir anhand verschiedener Beispiele, wie man das Schlüsselwort yield
in Scala verwendet.
Das Schlüsselwort yield
wird mit for
-Schleifen verwendet. Bei jeder Iteration der for
-Schleife generiert yield
einen gespeicherten Wert.
Es fungiert als Puffer für die for
-Schleife. Für jede Iteration der for
-Schleife werden diesem Puffer Elemente hinzugefügt.
Sobald die for
-Schleife alle ihre Iterationen beendet hat, wird eine Sammlung aller ausgegebenen Werte zurückgegeben.
Der Typ der zurückgegebenen Sammlung. Derselbe Typ for
-Schleife wurde iteriert, also ergibt eine List
eine List
, eine Map
ergibt eine Map
, ein array
ergibt ein array
und so weiter.
Die Syntax von yield
:
for() yield variable;
Verwenden des Schlüsselworts yield
in einem Array in Scala
Wir iterieren über alle Elemente eines Arrays mit der for-Schleife und verwenden das Schlüsselwort yield
, um Elemente bei jeder Iteration der for
-Schleife zu speichern.
Beispielcode:
object MyClass {
def main(args: Array[String]) : Unit = {
val array = Array(100,200,300,500,600)
var buffer = for (i <- array if i > 200) yield i
for(i<-buffer)
{
println(i)
}
}
}
Ausgabe:
300
500
600
yield
mit Scala-Liste
Wir werden alle Elemente einer Liste
mit der for-Schleife durchlaufen und das Schlüsselwort yield
verwenden, um Elemente bei jeder Iteration der for
-Schleife zu speichern und einige Operationen an ihnen auszuführen.
object MyClass {
def main(args: Array[String]) : Unit = {
val myList = List(1,2,3,4,5,6,7,8,9,10)
var buffer = for (i <- myList) yield i*i*i
println("Values from yield")
for(i <- buffer) println(i)
}
}
Ausgabe:
Values from yield
1
8
27
64
125
216
343
512
729
1000