Как работать с массивами в cJass? В статьях не нашёл нужной информации. Имеется такой код:
		integer abilities[]
       	abilities[0] = 'A02N'
        abilities[1] = 'A02O'
        abilities[2] = 'A02P'
        abilities[3] = 'A02Q'
        
        integer index = 0
        whilenot (index > 3)
        {
            // ...
            
            index++
        }
Можно ли его как-то сократить, сделать лучше?
Есть ли в cJass инициализатор массива? Что-то вроде:
	integer abilities[] = {1, 2, 3}
Можно ли узнать размер массива (количество не null элементов или номер последнего не null элемента)? Какой-нибудь Array.size.

Принятый ответ

Можно ли его как-то сократить, сделать лучше?
for (integer index = 0; index <= 3; index++) { }
Для инициализации массива можно использовать initializer из library, указанная функция исполнится при запуске карты, да и как раз поделишь программу на модули
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
3 года назад
0
Похожие вопросы:

ответ
всегда по ссылке для handle-типов, всегда по значению для остальных
изменить это невозможно
никак, использовать глобалку, куда сохранять локалку перед нулением
нет, нету
ну или аналоги всего этого есть в продвинутых редакторах, не знаю, пусть те, кто ими пользуются, скажут

0
26
3 года назад
0
0
17
3 года назад
0
Массив это примитивная коллекция данных. Оно для этого не предназначено.
Для твоей задачи нужен либо vJass массив как объект, либо реализация списка.
0
18
3 года назад
0
Можно ли его как-то сократить, сделать лучше?
for (integer index = 0; index <= 3; index++) { }
Для инициализации массива можно использовать initializer из library, указанная функция исполнится при запуске карты, да и как раз поделишь программу на модули
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.