Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
05.09.2011 21:28

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Особенности работы с массивами в QSP

Поиск пустых значений в несуществующем массиве:

Код:

*NL arrpos('probe659', 0)
*NL arrpos('$probe659', '')

вернёт позицию 0, т. е. первую позицию массива, хотя, по-хорошему, хотелось бы получать -1, то есть "не найдено".

Неактивен

0    0    #2
08.09.2011 12:18

WladySpb
Участник (+2)
Зарегистрирован: 21.12.2008
Сообщений: 33

Re: Особенности работы с массивами в QSP

Но нулями он заполняется при присваивании. А как же удаление отдельных элементов через KILLVAR? Но KILLVAR тоже не оставляет пробелов! Как только из массива 1, 2, 3 мы удаляем 2, то получаем массив 1, 3 - два элемента на позициях 0 и 1 соответственно. "Хвост" массива сдвигается влево на 1, сохраняя массив неразрывным.

Вот этот нюанс на самом деле напрягает. Грубо говоря, задавая конкретное значение элементу массива, я рассчитываю что оно таким и останется.
Например, я пишу:

Код:

probe[4]=10

а потом, поигравшись с killvar пытаюсь поработать с этим элементом, но там неожиданно оказывается другое значение. Пока у меня таких глюков не было, и теперь, зная как это работает, наверное не допущу такой ошибки, но мог бы.

PS Кстати, а если используется строковая индексация? Происходит смещение по индексам, или индекс сохраняется за элементом массива вне зависимости от того, где он находится?

Отредактировано WladySpb (08.09.2011 12:30)

Неактивен

0    0    #3
08.09.2011 12:34

WladySpb
Участник (+2)
Зарегистрирован: 21.12.2008
Сообщений: 33

Re: Особенности работы с массивами в QSP

Ну, я обычно очищаю весь массив целиком, пока необходимости не было делать это поэлементно. Просто представил себе ситуацию.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru