Scala 中yield 关键字
在 Scala 中,yield 关键字通常与 for 循环结合使用,用于生成一个集合(通常是 List、Array 等)。它的作用是将循环体中的每次迭代产生的值收集起来,并最终返回一个包含这些值的集合。
下面是一个简单的示例,演示了 for 循环结合 yield 的用法:
scala
val numbers = List(1, 2, 3, 4, 5)
val doubled = for (num < numbers) yield num 2
println(doubled) // 输出: List(2, 4, 6, 8, 10)
在这个例子中,我们使用 for 循环遍历了 numbers 列表中的每个元素,并将每个元素乘以2。然后,使用 yield 关键字将每次迭代生成的值收集起来,最终返回一个包含这些值的列表。
另一个例子是使用 yield 生成一个 Map 集合:
scala
val fruits = List("apple", "banana", "orange")
val fruitLengths = for (fruit < fruits) yield (fruit, fruit.length)
println(fruitLengths) // 输出: List((apple,5), (banana,6), (orange,6))
在这个例子中,我们遍历了 fruits 列表中的每个元素,并使用 yield 关键字生成了一个包含每个水果及其长度的元组,最终返回一个包含这些元组的列表。
总的来说,yield 关键字是 Scala 中用于生成集合的一种便捷方式,结合 for 循环可以简化代码,并提高代码的可读性。