Извлечение значений из массива в кортеж
Есть ли простой способ извлечь значения списка в кортеж в Scala?
В основном что-то вроде
"15,8".split(",").map(_.toInt).mkTuple //(15, 8)
Или каким-то другим способом я могу сделать
val (x, y) = "15,8".split(",").map(_.toInt)
Ответы
Ответ 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
}