Разрушение кортежа - это непрозрачный вызов unapply
метода TupleN[T1, ..., Tn]
объекта-компаньона, известного как объекта экстрактора . Как следует из документации, можно иметь только инициализацию переменной с объектом экстрактора, но не присваивание.
Таким образом, единственный возможный способ - использовать его следующим образом:
def getTuple = (1,2)
def main() = {
val (a,b) = getTuple
// use a,b
}
тот факт, что вы используете var
, может быть признаком того, что у вас есть недостаток дизайна. Попробуйте изменить код или указать точную проблему, которую вы пытаетесь решить с помощью var
, чтобы оправдать его использование (хотя то, что вы пытаетесь сделать с помощью экстрактора, все еще невозможно)