Поскольку Pair
является неизменным, вы не можете просто заменить значение пары, если вы не используете отражение.Либо замените Pair
на что-то изменчивое, либо оставайтесь с ним и возвращайте новое Pair
вместо этого либо с copy
(устанавливая только некоторые значения), либо со следующим:
fun bind(pair: Pair<String, Boolean>) = pair.let { (left, right) -> // destructuring
// exchange pair values here... just showing a sample:
left.toInt() to right.toString() // this is basically the same as Pair(left.toInt(), right.toString())
} // in this example it returns a Pair<Int, String>
Пока вы можетевероятно, представьте свой собственный MutablePair
-класс, я бы предпочел придерживаться неизменности и адаптировать ваш код для соответствующей обработки.Изменчивость может быть проблемой;тем более, если кто-то еще не ожидает, что ваша пара изменчива.