Scala | yield Keyword
Last Updated :
07 Jun, 2019
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:
object GFG
{
def main(args : Array[String])
{
var print = for ( i < - 1 to 10 ) yield i
for (j < -print)
{
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:
object GFG
{
def main(args : Array[String])
{
val a = Array( 8 , 3 , 1 , 6 , 4 , 5 )
var print = for (e < - a if e > 4 ) yield e
for (i < -print)
{
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.
Share your thoughts in the comments
Please Login to comment...