La palabra clave yield en el lenguaje de programación Scala

Suraj P 18 abril 2022
La palabra clave yield en el lenguaje de programación Scala

En este artículo, aprenderemos cómo usar la palabra clave yield en Scala con la ayuda de diferentes ejemplos.

La palabra clave yield se utiliza con bucles for. En cada iteración del bucle for, yield genera un valor recordado.

Actúa como un búfer para el bucle for. Para cada iteración del bucle for, se agregan elementos a este búfer.

Una vez que el bucle for finaliza todas sus iteraciones, se devuelve una colección de todos los valores obtenidos.

El tipo de colección que se devuelve. El mismo tipo de bucle for fue iterado, por lo que una Lista produce una Lista, un Map produce un Map, un array produce un array, y así sucesivamente.

La sintaxis de yield:

for() yield variable;

Uso de la palabra clave yield en un array en Scala

Iteraremos sobre todos los elementos de un array usando el bucle for y usaremos la palabra clave yield para almacenar elementos en cada iteración del bucle for.

Código de ejemplo:

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) 
        } 
    }
}

Producción :

300
500
600

yield con Scala List

Iteramos sobre todos los elementos de una Lista usando el bucle for y usamos la palabra clave yield para almacenar elementos en cada iteración del bucle for y realizar alguna operación en ellos.

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)
    }
}

Producción :

Values from yield
1
8
27
64
125
216
343
512
729
1000
Autor: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub