想象一下,我有以下列表l。是否可以通过使用map返回类似于下面结果的列表,但如果让我们说数字为2则返回结果两次?例如
l.map(x => if(x = 2)(返回两次)x * 2)
所以结果列表应该是
列表(2,4,4,6,8,10)
而不是下面提到的那个。
scala> val l = List(1,2,3,4,5)
scala> l.map( x => x*2 )
res60: List[Int] = List(2, 4, 6, 8, 10)
答案 0 :(得分:5)
您正在寻找.flatMap
l.flatMap {
case 2 => Seq(4,4)
case x => Seq(x*2)
}