La palabra clave yield devolverá un resultado después de completar las iteraciones del bucle. El bucle for utiliza el búfer internamente para almacenar el resultado iterado y, al finalizar todas las iteraciones, produce el resultado final de ese búfer. No funciona como bucle imperativo. El tipo de la colección que se devuelve es el mismo tipo que tendemos a iterar, por lo tanto, un mapa produce un mapa, una lista produce una lista, y así sucesivamente.
Sintaxis:
var result = for{ var x <- List} yield x
Nota: Las llaves se han utilizado para mantener las variables y condiciones y el resultado es una variable donde todos los valores de x se mantienen dentro de la forma de colección.
Ejemplo:
// Scala program to illustrate yield keyword // Creating object object GFG { // Main method def main(args: Array[String]) { // Using yield with for var print = for( i <- 1 to 10) yield i for(j<-print) { // Printing result println(j) } } }
Producción:
1 2 3 4 5 6 7 8 9 10
En el ejemplo anterior, el bucle for utilizado con una declaración de rendimiento en realidad crea una secuencia de lista.
Ejemplo:
// Scala program to illustrate yield keyword // Creating object object GFG { // Main method def main(args: Array[String]) { val a = Array( 8, 3, 1, 6, 4, 5) // Using yield with for var print=for (e <- a if e > 4) yield e for(i<-print) { // Printing result println(i) } } }
Producción:
8 6 5
En el ejemplo anterior, el bucle for utilizado con una declaración de rendimiento en realidad crea una array. Porque dijimos yield e, es un Array[n1, n2, n3, ….] . e <- a es nuestro generador y si (e > 4) podría ser un guardia que filtra el número, esos no parecen ser mayores que 4.
Publicación traducida automáticamente
Artículo escrito por DivyaPareek y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA