【发布时间】:2018-04-14 05:46:03
【问题描述】:
在下面的代码中,如果元素=2,我需要停止处理地图:
val seq = Seq(1,2,3)
seq.map { x => if (x==2) /* stop processing the map */ }
这可能吗?
【问题讨论】:
-
您可以使用
takeWhile。例如:stackoverflow.com/a/33294354/9297144
标签: scala
在下面的代码中,如果元素=2,我需要停止处理地图:
val seq = Seq(1,2,3)
seq.map { x => if (x==2) /* stop processing the map */ }
这可能吗?
【问题讨论】:
takeWhile。例如:stackoverflow.com/a/33294354/9297144
标签: scala
您不能直接使用map() 来执行此操作,因为map() 旨在处理整个集合,但您可以将集合分成两部分并将map() 应用于一个而不是另一个。
val seq = Seq(0,1,2,3,3,2,1,0)
val (before, after) = seq.span(_ != 2)
before.map(_ + 70) ++ after //res0: Seq[Int] = List(70, 71, 2, 3, 3, 2, 1, 0)
【讨论】: