scala - вышивание tuple3 с массивом размера 3 - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть кортеж из 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)
                                 ^

, как исправить эту ошибку?.

1 Ответ

2 голосов
/ 24 февраля 2020

Вам нужно универсальное c решение для любого массива и размера кортежа?

Потому что, если нет, я бы просто ленился и сделал бы следующее:

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

  case _ =>
    Map.empty[String, Any]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...