Индексы разные - элементы разные. Конткретно в этом примере массив один - arr, вложенный массив тоже один - индекс = 1, а вот элементы внтури вложенного массива разые 1 и 2.
Смотрите луа в этом плане полностью гибкий. Вы можете в таблицы/массивы помещать любые типы данных. Т.е. в примере с фором я создал таблицу и в эту таблицу помещаю другие таблицы, в эти вложенные таблицы помещаю итоговые значения. Вам нужно понять одну вещь
ложки двумерных массивов не существует. Зато существуют массивы которые содержат в себе массивы, что для нас воспринимается, как двумерный массив. По сути когда вы вызываете arr[1][1] происходит следующее:
Код
, т.е. сначала вам вернется элемент который содержится в arr[1], а потом из вернувшегося элемента (который у нас является вложенным массивом) выдернется элемент [1]. Кстати запись (arr[1])[1] абсолютно корректная, но бессмысленная в рамках луа. Но подобный вызов может пригодиться, когда некторая функция возрващает массив, а вам нужет оттуда только один параметр:
Код
local my_param = my_func()[5]
если же некоторая функция возвращает много параметров и не охота с ними возиться помещая в бессмысленные переменые типа:
Код
local _, _, _, _, my_param = my_func()
можно сделать так:
Код
local my_func = function()
return 1, 2, 3, 4, 5
end
local my_param = ({my_func()})[5]
log(my_param)
Сообщение отредактировал DarkMaster - 4.3.2023, 2:03