Scala 趣题 8

程序的结果会是什么?


package pzs

object Pz008 extends App {
  val xs = Seq(Seq("a", "b", "c"), Seq("d", "e", "f"), Seq("g", "h"), Seq("i", "j", "k"))
  val ys = for (Seq(x, y, z) <- xs) yield x + y + z
  println(ys)
  val zs = xs map {case Seq(x, y, z) => x + y + z}
  println(zs)
}




















解释:

江湖如此阴险!带有pattern matcing的for表达式并没有直接展开成map函数,而是先加了个withFilter

xs withFilter {case Seq(x, y, z) => true; case _=> false} map {case Seq(x, y, z) => x + y + z}

这道题是绝好的面试题

你可能感兴趣的:(scala)