【问题标题】:multi-assignment on a Seq[Tuple2]Seq[Tuple2] 上的多重赋值
【发布时间】:2012-10-05 16:51:27
【问题描述】:

在这里乱晃,似乎很简单。

有一个 Seq[Tuple2[A,B]],叫它 foo,我想将 Tuple2 提取到一个 (Seq[A],Seq[B]) 中,我可以在上面进行一站式多任务分配。

val(a,b) = foo ??

尝试过地图、平面地图和其他失败的变体。

如果你愿意,请点亮;-)

【问题讨论】:

    标签: scala collections tuples variable-assignment


    【解决方案1】:

    试试unzip

    文档将其指定为

    def unzip[A1, A2](implicit asPair: (A) ⇒ (A1, A2)): (Seq[A1], Seq[A2])
    

    所以你可以直接说val (a, b) = foo.unzip

    要走另一条路(从x: Seq[A]y: Seq[B]z: Seq[(A,B)]),您可以使用val z = x.zip(y)

    【讨论】:

    • 简单的事情 ;-) 谢谢,能够以比 "Foo(seq.map(._1),seq.map 更有意义的方式分解嵌套表单映射非常有用(._2))"
    • 不客气!你一定会喜欢 Scala 的标准库 :D
    猜你喜欢
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 2016-03-05
    • 2011-07-08
    相关资源
    最近更新 更多