Таблицы Lua с изменяющимися переменными - Mental Block - PullRequest
1 голос
/ 27 ноября 2011

Я всегда предполагал, что изменение значения k с "x" на 20 исключит "x".Так почему же в этом примере мы можем вернуться и сослаться на "x"?

a = {}
k = "x"
a[k] = 10
print(a[k])        ---> Returns 10
print(a["x"])      ---> Returns 10
a[20] = "great"
k = 20
print(a[k])        ---> "great"
a["x"] = a["x"] + 1
print(a["x"])    --> 11

Почему эта последняя команда печати работает и возвращает 11?Я думал, что мы установили k = 20.Почему "x" даже на картинке?

1 Ответ

2 голосов
/ 27 ноября 2011

Lua называет таблицу тем, что другие языки программирования называют словарем или хэшем, таблица - это структура данных, в которой хранятся пары ключей и значений, у нас не может быть двух идентичных ключей в таблице, но у нас могут быть одинаковые значения для разных ключей. , Итак, в основном то, что вы делаете в строке 2, дает вашей переменной «k» значение «x», в строке 3 вы говорите, что в таблице «a» будет запись со значением 10, на которое ссылается ключ «x», а не переменная «k», переменная «k» является anddress, а не значением.

Надеюсь, я как-то помог.

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