Scala | yield Keyword

yield keyword will returns a result after completing of loop iterations. The for loop used buffer internally to store iterated result and when finishing all iterations it yields the ultimate result from that buffer. It doesn’t work like imperative loop. The type of the collection that is returned is the same type that we tend to were iterating over, Therefore a Map yields a Map, a List yields a List, and so on.

Syntax:

var result = for{ var x <- List}
yield x

Note: The curly braces have been used to keep the variables and conditions and result is a variable wherever all the values of x are kept within the form of collection.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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
        for(j<-print)
        
            // Printing result
            println(j) 
        
    

chevron_right


Output:

1
2
3
4
5
6
7
8
9
10

In above example, the for loop used with a yield statement actually creates a sequence of list.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Output:

8
6
5

In above example, the for loop used with a yield statement actually creates a array. Because we said yield e, it’s a Array[n1, n2, n3, ....]. e <- a is our generator and if (e > 4) could be a guard that filters out number those don't seem to be greater than 4.



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.