繁体   English   中英

scala - 用大小为 3 的 Array 拼接一个 tuple3

[英]scala - stitching a tuple3 with Array of size 3

我有一个由 3 个元素组成的元组,并尝试使用以下方法使用大小为 3 的数组进行压缩

val tup3= (10:BigInt,9:BigInt,3:BigInt)
val arr3:Array[String] = Array("cnt", "mxid2","nullid3")
val map_result = tup3.productIterator.toArray.zip(arr3).map( x => (x._2,x._1)).toMap

当我尝试相反的方式来避免元素交换时,我收到错误

arr3.zip(tup3.productIterator.toArray)

<console>:30: error: polymorphic expression cannot be instantiated to expected type;
 found   : [B >: Any]Array[B]
 required: scala.collection.GenIterable[?]
       arr3.zip(tup3.productIterator.toArray)
                                 ^

如何修复此错误?。

您是否需要任何数组和元组大小的通用解决方案?

因为如果没有,我会很懒惰并这样做:

(array, tuple) match {
  case ((key1, key2, key3), (value1, value2, value3)) =>
    val map = Map(
      key1 -> value1,
      key2 -> value2,
      key3 -> value3
    )

  case _ =>
    Map.empty[String, Any]
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM