Le mot clé yield dans le langage de programmation Scala

Suraj P 18 avril 2022
Le mot clé yield dans le langage de programmation Scala

Dans cet article, nous allons apprendre à utiliser le mot-clé yield dans Scala à l’aide de différents exemples.

Le mot clé yield est utilisé avec les boucles for. A chaque itération de la boucle for, yield génère une valeur mémorisée.

Il agit comme un buffer pour la boucle for. A chaque itération de la boucle for, des items sont ajoutés à ce buffer.

Une fois que la boucle for a terminé toutes ses itérations, une collection de toutes les valeurs fournies est renvoyée.

Type de collection retourné. La boucle for du même type était itérative, donc une List donne une List, une Map donne une Map, un array donne un array, et ainsi de suite.

La syntaxe de yield :

for() yield variable;

Utilisation du mot-clé yield dans un tableau en Scala

Nous allons itérer sur tous les éléments d’un tableau à l’aide de la boucle for et utiliser le mot clé yield pour stocker les éléments à chaque itération de la boucle for.

Exemple de code :

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

Production :

300
500
600

yield avec liste Scala

Nous allons parcourir tous les éléments d’une List en utilisant la boucle for et utiliser le mot-clé yield pour stocker les éléments à chaque itération de la boucle for et effectuer une opération sur eux.

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

Production :

Values from yield
1
8
27
64
125
216
343
512
729
1000
Auteur: 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