HOWTO · Scala

Das yield-Schlüsselwort in der Programmiersprache Scala

Dieser Artikel zeigt, wie das Schlüsselwort yield in Scala verwendet wird.

Auf dieser Seite

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