Scala 程式語言中的 yield 關鍵字

Suraj P 2022年5月18日
Scala 程式語言中的 yield 關鍵字

在本文中,我們將藉助不同的示例來學習如何在 Scala 中使用 yield 關鍵字。

yield 關鍵字與 for 迴圈一起使用。在 for 迴圈的每次迭代中,yield 都會生成一個記憶值。

它充當 for 迴圈的緩衝區。對於 for 迴圈的每次迭代,都會將專案新增到此緩衝區中。

一旦 for 迴圈完成其所有迭代,將返回所有產生值的集合。

返回的集合型別。相同型別的 for 迴圈正在迭代,所以 List 產生一個 List,一個 Map 產生一個 Map,一個 array 產生一個 array,等等。

yield 的語法:

for() yield variable;

在 Scala 的陣列中使用 yield 關鍵字

我們將使用 for 迴圈遍歷陣列的所有元素,並使用 yield 關鍵字在 for 迴圈的每次迭代中儲存元素。

示例程式碼:

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

輸出:

300
500
600

yield 使用 Scala 列表

我們將使用 for 迴圈遍歷 List 的所有元素,並使用 yield 關鍵字在 for 迴圈的每次迭代中儲存元素並對它們執行一些操作。

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

輸出:

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