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的生成器、定义、过滤器
最新推荐文章于 2024-03-16 09:34:59 发布