-------------------------------
for(x <- expr1) yield expr2
expr1.map(x => expr2)
-------------------------------
for(x <- expr1 if expr2) expr3
expr1.withFilter(x => expr2).map(x => expr3)
-------------------------------
for(x <- expr1 if expr2; seq) yield expr3
for(x <- expr1 withFilter expr2; seq) yield expr3
-------------------------------
for(x <- expr1; y <- expr2; seq) yield expr3
expr1.flatMap(x => for (y <- expr2; seq) yield expr3)
-------------------------------
for ((x1, x2) <- expr1) yield expr2
expr1.map{case(x1, x2) => expr2}
-------------------------------
for(pat <- expr1) yield2
expr1 withFilter {
case pat = > true
case _ => false
} map {
case pat => expr2
}
2014年7月12日 星期六
scala 中 for ...yield 與 map, flatMap, withFilter 之互換
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言