我们有 Option
这是一个 Iterable
超过 0 或 1 个元素。
我想有这样一个有两个元素的东西。我拥有的最好的是Array(foo, bar).map{...}
,而我想要的是:
(foo, bar).map{...}
(因此 Scala 识别出
Iterable
中有两个元素)。标准库中是否存在这样的结构?
编辑:另一个解决方案是创建一个
map
方法:def map(a:Foo) = {...}
val (mappedFoo, mappedBar) = (map(foo), map(bar))
最佳答案
如果您只想映射相同类型的元组,一个简单的版本是:
implicit class DupleOps[T](t: (T,T)) {
def map[B](f : T => B) = (f(t._1), f(t._2))
}
然后您可以执行以下操作:
val t = (0,1)
val (x,y) = t.map( _ +1) // x = 1, y = 2
scala 标准库中没有用于映射正好 2 个元素的特定类型。
关于scala - 可迭代两个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32198788/