码迷,mamicode.com
首页 > 其他好文 > 详细

Scala中For表达式的强大表现力

时间:2015-08-13 07:42:56      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

学习了ScalaFor表达式的强大表现力scala 应用for循环比应用高阶函数表现力强很多,高阶函数的行为指定了对数据处理的细节。实际上 for是用map的方式,更加简洁。

例子如下

case  class  Person(name:String,isMale:Boolean,children:Person*)/ildren可变参数 
object  For_Expressive{
def main(args:Array[String]){
val lauren=Person("Lauren",false)
val  rocky=Person("Rocky",true) 
val  vivian=Person("Vivian",false,lauren,rocky)//妈妈
val persons=List(lauren,rocky,vivian)

val  result=persons  filter(person =>  !person.isMale)  flatMap(person)=>
(person.children  map(child=>(person.name,child.name))))//每个child返回妈妈的名字和孩子的名字
//flatMap是把几个对象合成一个
//List((Vivian,Lauren),(Vivian,Rocky))
println(result)
val forResult=for(person<-persons;if!person.isMale;child<-person.children)
yield(person.name,child.name)
println(forResult)

 

王家林亲授《DT大数据梦工厂》大数据实战视频“Scala深入浅出实战经典”视频、音频和PPT下载!第85讲:Scala中For表达式的强大表现力实战
百度云盘:http://pan.baidu.com/s/1hqeuFp6
360云盘:http://yunpan.cn/cdRhVZZYrIYcp 访问密码 a5b9
腾讯微云:http://url.cn/Zoao1y

技术分享

Scala中For表达式的强大表现力

标签:

原文地址:http://www.cnblogs.com/tom-lee/p/4726049.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!