Другие языки программирования и технологии

Что обозначает "for i, in ipairs()" в Roblox Studio?

Как использовать эту строку в языке программирования Lua?
Sergej Karpenko
Sergej Karpenko
2 213
В Roblox Studio цикл как в заголовке выполняет многократную обработку массива, и возвращает результат в виде двух значений, допустим i,v (for i,v in ipairs), а pairs от ipairs отличаются лишь видом результата в первом значении, pairs = key, а ipairs = index. Я сам в этом не особо шарю, ибо не пользуюсь часто. Второе значение это значение ключа (индекса), короче разбираться в этом так глубоко не надо, в различных уроках есть прямое применение этого цикла в нужных целях, надо просто понять принцип и всё сразу станет на свои места. Я знаю, что плохо объясняю, как смог так смог
ГК
Григорий Климов
1 038
Лучший ответ
Sergej Karpenko Спасибо
Итерация по элементам массива (синтаксис у тебя в вопросе неправильный, часть кода видимо вырезано)
Фируз Нигматов
Фируз Нигматов
66 510
Sergej Karpenko То есть найти в массиве переменой обьект?
Sergej Karpenko Объект*
Это цикл. Можете на уроках программирования посмотреть
Sergej Karpenko какой именно?
чем он отличается от while ...do?

Заранее спасибо
pairs() возвращает пары ключ-значение и в основном используется для ассоциативных таблиц. порядок ключей не указан.

ipairs() возвращает пары индекс-значение и в основном используется для числовых таблиц. Нечисловые ключи в массиве игнорируются, а порядок индекса является детерминированным (в числовом порядке).

Это иллюстрируется следующим фрагментом кода.

> u={}
> u[1]="a"
> u[3]="b"
> u[2]="c"
> u[4]="d"
> u["hello"]="world"

> for key,value in ipairs(u) do print(key,value) end
1 a
2 c
3 b
4 d

> for key,value in pairs(u) do print(key,value) end
1 a
hello world
3 b
2 c
4 d

pairs()и ipairs()немного отличаются.

pairs()возвращает пары ключ-значение и в основном используется для ассоциативных таблиц. порядок ключей не указан.
ipairs()возвращает пары индекс-значение и в основном используется для числовых таблиц. Нечисловые ключи в массиве игнорируются, а порядок индекса является детерминированным (в числовом порядке).
Это иллюстрируется следующим фрагментом кода.

> u={}
> u[1]="a"
> u[3]="b"
> u[2]="c"
> u[4]="d"
> u["hello"]="world"
> for key,value in ipairs(u) do print(key,value) end
1 a
2 c
3 b
4 d
> for key,value in pairs(u) do print(key,value) end
1 a
hello world
3 b
2 c
4 d
>
Когда вы создаете таблицы без ключей, он ведет себя как числовой массив, а поведение или пары и ipairs идентичны.

a = {"one", "two", "three"}

эквивалентно a[1]="one" a[2]="two" a[3]="three" и pairs() и ipairs() будет идентичным (за исключением порядка, который не гарантируется pairs()).

взято со stackoverflow
видео на тему применения :
https://www.youtube.com/watch?v=mVTvXNW2dN8

Это если краток, можете глянуть lua-users wiki правда там все довольно запутано в плане поиска информации, и на английском, но всё отлично задокументировано
Sergej Karpenko Когда переменные называешь локальами: ...