scala - 可迭代两个元素?

标签 scala

我们有 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/

相关文章:

Scala:返回参数化类型的默认值

scala - 关于 Java 和 Scala 中的泛型

list - 如何使用惯用的 Scala 从另一个列表中替换(填充)选项列表中的无条目?

scala - Spark DataFrame 分区器为 None

scala - 使用值与参数顺序不匹配的无形 HList 调用 Scala Function2

eclipse - 运行 play2 和 eclipse 时,我可以避免编译源代码两次吗?

scala - 从 `sbt compile` 排除测试依赖解析

scala - 解决sbt插件超时问题

android - Ensime 不适用于 sbt + android-plugin

scala - 如何获取开始日期和结束日期之间的月数