Реструктуризующее присваивание
Реструктуризующее (деструктивное) присваивание позволяет определить сразу несколько переменных по каждому элементу массива или объекта.
Для массивов, переменным присваивается значение.
arr = ["a", "b", "c"]
extract(var1, var2, var3) = arr
print var1 // a
print var2 // b
print var3 // c
Что равносильно:
arr = ["a", "b", "c"]
var1 = arr[0]
var2 = arr[1]
var3 = arr[2]
Для объектов, переменным присваивается массив [ключ, значение]
map = {"key1": 1, "test": "text"}
extract(var1, var2) = map
println var1 // [key1, 1]
println var2 // [test, text]
Если нужно пропустить какое-либо значение, название переменной можно не писать:
extract(x, , z) = [93, 58, 90]
println x // 93
println z // 90