Извлечение значений из массива в кортеж - программирование
Подтвердить что ты не робот

Извлечение значений из массива в кортеж

Есть ли простой способ извлечь значения списка в кортеж в Scala?

В основном что-то вроде

"15,8".split(",").map(_.toInt).mkTuple //(15, 8)

Или каким-то другим способом я могу сделать

val (x, y) = "15,8".split(",").map(_.toInt)
4b9b3361

Ответ 1

Если у вас есть их в массиве, вы можете написать Array перед именами переменных, например:

val Array(x, y) = "15,8".split(",").map(_.toInt)

Просто замените на Seq или аналогичный, если у вас есть другой тип коллекции.

В основном он работает как экстрактор за кулисами. Также см. Этот связанный поток: scala zip list to tuple

Ответ 2

Вы можете попробовать совпадение с образцом:

val (x, y) = "15,8".split(",") match {
  case Array(x: String, y: String) => (x.toInt, y.toInt)
  case _ => (0, 0) // default
}