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
