当条件满足时,我需要打破seq映射,foo返回一个对象列表,其中大小取决于查找targetId所需的时间
def foo(ids: Seq[String], targetId: String) = ids.map(id => getObject(id)).until(id == targetId)
Run Code Online (Sandbox Code Playgroud)
很明显,直到方法不存在,但我正在寻找相同的东西
Aiv*_*ean 14
无需创建中间流/迭代器/视图.
先拨打电话 takeWhile:
ids.takeWhile(_ != targetId).map(getObject)
Run Code Online (Sandbox Code Playgroud)
我使用的方法有两种:
1)map用以某种方式处理事物的递归调用替换.如果有一些复杂的副作用,非常方便.
2)使用Stream或Iterator并takeWhile评估它的元素懒洋洋地,一旦条件满足终止.我会选择这个变体,因为它将接近第一个选项 - 但更加明确.
| 归档时间: |
|
| 查看次数: |
2568 次 |
| 最近记录: |