在Scala中,for-yield結構可以用于扁平化和映射集合。通過for-yield結構,我們可以使用一個或多個生成器來遍歷集合,并對集合中的元素進行篩選、轉換等操作,最終生成一個新的集合。
下面是一個示例,演示如何使用for-yield結構來對一個包含多個列表的列表進行扁平化和映射操作:
val listOfLists = List(List(1, 2, 3), List(4, 5, 6), List(7, 8, 9))
val flattenedAndMappedList = for {
list <- listOfLists // 生成器,遍歷包含多個列表的列表
element <- list // 生成器,遍歷每個列表中的元素
} yield element * 2 // 對每個元素進行映射操作,乘以2
println(flattenedAndMappedList) // 輸出結果為 List(2, 4, 6, 8, 10, 12, 14, 16, 18)
在上面的示例中,for-yield結構首先遍歷包含多個列表的列表listOfLists
,然后再遍歷每個列表中的元素,最終對每個元素進行乘以2的操作,生成一個新的扁平化和映射后的列表flattenedAndMappedList
。