Scala深入浅出进阶经典 第86讲:Scala中For表达式的生成器、定义和过滤器

来源:互联网 发布:maya软件配置要求 编辑:程序博客网 时间:2024/05/22 17:12
package com.dt.scalaInAction.demo_086/** * Scala中For表达式的生成器、定义和过滤器 */case class Person(name: String, isMale: Boolean, children: Person*)object ForInAction {    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)                  //for循环操作列表         /*val forResult = for (person <- persons; if !person.isMale; child <- person.children)                         yield(person.name, child.name)*/         val forResult = for {                            person <- persons;   //生成器:用于遍历元素                            name = person.name;  //定义                            if !person.isMale;   //过滤器                            child <- person.children //处理                         }                         yield(person.name, child.name)         println(forResult)          //List((Vivian,Lauren), (Vivian,Rocky))                  //定义两个生成器         val content = for(x<-List(1,2,3);y<-List("Hadoop","Spark","Flink"))                       yield(x,y)         println(content)         //List((1,Hadoop), (1,Spark), (1,Flink), (2,Hadoop), (2,Spark), (2,Flink), (3,Hadoop), (3,Spark), (3,Flink))    }}

0 0
原创粉丝点击