Может кто-нибудь объяснить строку нескольких локальных переменных - PullRequest
0 голосов
/ 28 ноября 2018
1 function getCoordinates()
2   return 12, 55, 123
3 end

4 local x, y, z = getCoordinates()
5 print(x, y, z)  

output:
12  55  123

что делает строка 4?если я заменю его на

local x= getCoordinates()
local y= getCoordinates()
local z= getCoordinates()

, я получу 12 ноль 12

даже если я изменю оператор печати на

print(x)
print(y)
print(z)

все еще получу

12ноль 12

1 Ответ

0 голосов
/ 28 ноября 2018

Функция getCoordinates возвращает 3 значения.Ваше объявление local x, y, z распаковывает эти значения в 3 новые переменные.

Когда вы присваиваете getCoordinates() одной переменной, последние два значения автоматически отбрасываются, поэтому все 3 переменные получают значение 12.(Я не знаю, как вы можете получить nil за y.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...