大数据系列修炼-Scala课程85
2016-10-10 09:58
381 查看
大数据系列修炼-Scala课程85
核心内容:
1、Scala中for循环强大的表现力操作代码实战
1>在Scala当中,尽量使用for循环这种语法结构,具有很强的表现力。
2>在def fun(args:Int*)中,参数args实际上是一个变长参数,代表可以传进来多个整型变量。
实例程序1:变长参数的用法
运行结果:
实例2:输出母子关系
方法1:for循环
运行结果:
方法2:链式风格
运行结果:
如有问题,欢迎留言指正!
核心内容:
1、Scala中for循环强大的表现力操作代码实战
1、Scala中for循环强大的表现力操作代码实战 |
2>在def fun(args:Int*)中,参数args实际上是一个变长参数,代表可以传进来多个整型变量。
实例程序1:变长参数的用法
object App { def main(args: Array[String]): Unit = { //变长参数,代表函数的参数列表可以有多个参数 def fun(args:Int*) = { var sum = 0 for(ele<- args) sum += ele sum } val sum1:Int = fun(10,20,30) println(sum1) val sum2 = fun(10,50,60) println(sum2) } }
运行结果:
60 120
实例2:输出母子关系
方法1:for循环
case class Person(name:String,man:Boolean,children:Person*) //第三个形式参数可以有0个、1个或多个 object App { def main(args: Array[String]): Unit = { val person1 = Person("Lauren",false) val person2 = Person("Rocky",true) val person3 = Person("Roze",false,person1,person2) val list:List[Person] = List(person1,person2,person3) //方法1 for(person<- list) { if(person.man == false) //先判断性别 { for(child<- person.children) { println(person.name+"\t"+child.name) } } } println for(person<- list;if(person.man == false);child<- person.children) println(person.name+"\t"+child.name) println val list2 = for(person<- list;if(person.man == false);child<- person.children) yield (person.name+"\t"+child.name) println(list2) } }
运行结果:
Roze Lauren Roze Rocky Roze Lauren Roze Rocky List(Roze Lauren, Roze Rocky)
方法2:链式风格
case class Person(name:String,man:Boolean,children:Person*) //第三个形式参数可以有0个、1个或多个 object App { def main(args: Array[String]): Unit = { val person1 = Person("Lauren",false) val person2 = Person("Rocky",true) val person3 = Person("Roze",false,person1,person2) val list:List[Person] = List(person1,person2,person3) //方法2 val list2:List[Person] = list.filter(person=>person.man==false) //筛选出性别为女 val list3:List[String] = list2.flatMap(person=>{person.children.map(child=>person.name+"\t"+child.name)}) println(list3) } }
运行结果:
List(Roze Lauren, Roze Rocky)
如有问题,欢迎留言指正!
相关文章推荐
- 大数据系列修炼-Scala课程37
- 大数据系列修炼-Scala课程45
- 大数据系列修炼-Scala课程01
- 大数据系列修炼-Scala课程78
- 大数据系列修炼-Scala课程83
- 大数据系列修炼-Scala课程12
- 大数据系列修炼-Scala课程99
- 大数据系列修炼-Scala课程28
- 大数据系列修炼-Scala课程36
- 大数据系列修炼-Scala课程38
- 大数据系列修炼-Scala课程76
- 大数据系列修炼-Scala课程101
- 大数据系列修炼-Scala课程08
- 大数据系列修炼-Scala课程93
- 大数据系列修炼-Scala课程17
- 大数据系列修炼-Scala课程94
- 大数据系列修炼-Scala课程20
- 大数据系列修炼-Scala课程103
- 大数据系列修炼-Scala课程05
- 大数据系列修炼-Scala课程10