Переназначение переменных посредством деструктурирования

Мне нравятся функции деструкции Котлина, они помогают мне делить код и сосредотачиваются на существенном.

Я столкнулся с ситуацией, для которой я не мог понять правильный синтаксис, как я могу переназначить переменные через деструкцию?

var (start, end) = startEndDate(198502) // intellij neither accept this ... start, end = startEndDate(200137) // ... nor this (start, end) = startEndDate(200137) 

Solutions Collecting From Web of "Переназначение переменных посредством деструктурирования"

С точки зрения языка переменные, объявленные в объявлении деструктурирования, являются отдельными независимыми переменными, и в настоящее время Kotlin не предоставляет способ присвоить несколько переменных в одном выражении.

Вы можете снова разрушить свое выражение и назначить переменные по очереди:

 var (start, end) = startEndDate(198502) val (newStart, newEnd) = startEndDate(200137) start = newStart end = newEnd 

Если вам нужно показать, что эти две переменные имеют какое-то особое значение и должны быть назначены вместе, вы можете объявить локальную функцию, которая переназначает их следующим образом:

 var (start, end) = startEndDate(198502) fun setStartEnd(pair: Pair<SomeType, SomeType>) { start = pair.first; end = pair.second } setStartEnd(startEndDate(200137))