您的位置:首页 > 其它

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

2015-08-13 07:13 323 查看
学习了Scala中For表达式的强大表现力,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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: