case class Person(name: String, isMale: Boolean, children: Person*)
object For_expressive {
def main(args: Array[String]): Unit = {
val lauren = Person("Lauren", false)
val rocky = Person("Rocky", true)
val vivian = Person("Vivian", false, lauren, rocky)
val persons = List(lauren, rocky, vivian)
//生成器、定义、过滤器
val forResult = for{person <- persons; name = person.name; if !person.isMale; child <- person.children}
yield (person.name, child.name)
println(forResult)
//这里其实是个嵌套循环
val content = for (x <- List(1, 2, 3); y <- List("hadoop", "hadoop", "kafka"))
yield (x, y)
println(content)
}
}scala进阶30-for的生成器、定义、过滤器
最新推荐文章于 2025-11-19 14:54:53 发布
本文通过Scala代码示例介绍了如何使用生成器、定义和过滤器进行嵌套循环操作,展示了Scala语言的强大表达能力。
700

被折叠的 条评论
为什么被折叠?



