Использование массивов

Содержание  Previous  Next

QSP поддерживает работу с массивами. Массив - последовательный набор значений, имеющих один тип данных и обладающих одним названием. Элементы массива идентифицируются по индексам. Индексация ведётся с нуля. Т.е. элемент с индексом 0 - первый элемент массива, 1 - второй и т.д. В зависимости от типа элементов массива он может быть текстовым или числовым. В QSP каждый массив имеет и текстовые, и числовые значения. Если вы хотите обратиться к текстовым элементам массива, нужно перед его названием поставить символ "$", если к числовым - достаточно указать его название. Обращение к элементу массива происходит так: сначала указывается название массива (с символом "$" или без него), затем в квадратных скобках - числовое выражение, равное индексу элемента, к которому производится обращение. Т.е. "$A[6]" - обращение к текстовому значению элемента с индексом 6 (7-му) массива с названием "A", "NEW[2]" - обращение к числовому значению элемента с индексом 2 (3-му) массива с названием "NEW".

Присваивание и считывание значений элементов массива происходит точно так же, как и при работе с переменной. Примеры:

 

 A[2]=89 - присвоить числовому значению 3-го элемента массива "A" значение 89

 $B[3]='Cool' - присвоить текстовому значению 4-го элемента массива "B" значение 'Cool'

 A=B[5] - присвоить числовому значению переменной "A" числовое значение 6-го элемента массива "B"

 $C=$MAS[54] - аналогично

 

Массивы могут индексироваться через строки. Регистр символов данной строки не имеет значения. Примеры:

 

 $ARR['mystring'] = 'value' эквивалентно $arr['MyString'] = 'value'

 ARR['mystring'] = 890

 $item_loc['палка'] = 'лес'

 $DESCS[$curloc] = '<<$DESCS[$curloc]>> text.'

 values['67'] = 87

 

Кроме этого, существует упрощённый синтаксис добавления элемента в массив - если индекс элемента не указан, то будет выбран элемент, следующий за последним. Например:

 

 $objs[] = 'Топор'

 $objs[] = 'Напильник'

 $objs[] = 'Доска'

 

При получении значения, если индекс элемента не указан, то будет выбран последний элемент. Например:

 

 $a = $objs[]

 a = objs[]

 

PS:

В QSP все переменные являются массивами (если не указывать индекс - он будет равен 0), поэтому обращение "A=AR[5]" полностью эквивалентно такому: "A[0]=AR[5]". Следствие этого - к названиям массивов применяются точно такие же правила записи, как к названиям переменных.