Escala | palabra clave de rendimiento

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *