Scala 中for表达式查询
2016-01-11 22:28
169 查看
1、代码
package com.yy.enhance
/**
* yield使用示例
*/
case class Emp1(name:String,address:String,title:List[String])
object ForAndYieldTest extends App {
val rs = for(x <- List(1,2,3);y <- List("xx","yy","zz"))
yield(x,y)
println(rs)
//for表达式查询
val emps:List[Emp1] = List(
Emp1("xyz","bj",List("Manager")),
Emp1("xyq","tj",List("Manager","Director")),
Emp1("opq","sy",List("Employee"))
)
val rs2 = for(e <- emps; a1 <- e.title if a1 startsWith "Manager") yield(e.name)
println(rs2)
val rs3 = for(e <- emps if (e.name indexOf "xy") >=0) yield(e.title)
println(rs3)
}2、结果
List((1,xx), (1,yy), (1,zz), (2,xx), (2,yy), (2,zz), (3,xx), (3,yy), (3,zz))
List(xyz, xyq)
List(List(Manager), List(Manager, Director))
package com.yy.enhance
/**
* yield使用示例
*/
case class Emp1(name:String,address:String,title:List[String])
object ForAndYieldTest extends App {
val rs = for(x <- List(1,2,3);y <- List("xx","yy","zz"))
yield(x,y)
println(rs)
//for表达式查询
val emps:List[Emp1] = List(
Emp1("xyz","bj",List("Manager")),
Emp1("xyq","tj",List("Manager","Director")),
Emp1("opq","sy",List("Employee"))
)
val rs2 = for(e <- emps; a1 <- e.title if a1 startsWith "Manager") yield(e.name)
println(rs2)
val rs3 = for(e <- emps if (e.name indexOf "xy") >=0) yield(e.title)
println(rs3)
}2、结果
List((1,xx), (1,yy), (1,zz), (2,xx), (2,yy), (2,zz), (3,xx), (3,yy), (3,zz))
List(xyz, xyq)
List(List(Manager), List(Manager, Director))
相关文章推荐
- Windows下Scala环境搭建
- asp中用for循环的一个小技巧
- javascript for循环从入门到偏门(效率优化+奇特用法)
- js使用for循环查询数组中是否存在某个值
- js 数组的for循环到底应该怎么写?
- JS 使用for循环遍历子节点查找元素
- Windows7下安装Scala 2.9.2教程
- For循环中分号隔开的3部分的执行顺序探讨
- js使用for循环及if语句判断多个一样的name
- JavaScript在for循环中绑定事件解决事件参数不同的情况
- js for循环,为什么一定要加var定义i变量
- shell for循环与数组应用介绍
- 一个shell for循环与case结合的脚本(监控程序状态)
- Lua中的for循环和迭代器的秘密探究
- JS数组的遍历方式for循环与for...in
- Javascript基础教程之for循环
- 简单学习JavaScript中的for语句循环结构
- 跟我学习javascript的for循环和for...in循环
- java中for循环删除集合陷阱
- Java利用for循环输出空心菱形的实例代码