映射添加元素并返回2而不是1

时间:2016-10-13 13:15:29

标签: scala

想象一下,我有以下列表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)

1 个答案:

答案 0 :(得分:5)

您正在寻找.flatMap

l.flatMap { 
  case 2 => Seq(4,4)
  case x => Seq(x*2)
}