Open In App

Scala | yield Keyword

Improve
Improve
Like Article
Like
Save
Share
Report

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:




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


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:




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


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.



Last Updated : 07 Jun, 2019
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads