Нульовий індекс цілком справедливий, якщо ви вважаєте, що індекс фактично є зсувом від базової адреси масиву. Це насправді норма, хоча вона варіюється від діалектної до діалектної. Зі старою мовою Jovial [0]
фактично містився максимальний розмір масиву. так це почалося з [1]
.
З деякими основними реалізаціями ви можете довільно обрати, щоб вони були 0
або 1
як перший індекс. І принаймні один Basic дозволяє призначити масиви для індексу fron [n]
до [m]
. де n
і m
може мати будь-яке ціле значення, навіть негативне, доки n
воно менше або дорівнює m
. Значення n
їх стає віднятим від [index]
введеного, як index-n = 0
ніби відповідає індексу n
.
Але ви можете зробити те ж саме і більше у власному коді. Ви навіть можете змінити порядок масиву таким чином:
dim array(0, abs(m-n));
step=sign(m-n);
if n > m then
base=m
else
base=n;
fi
Цей приклад коду насправді лише частково з однієї мови. Я просто хотів, щоб це було більш читабельним. Етап змінна використовується для управління видимим напрямком, в якому ви рухаєтесь, чи то позитивний чи негативний, так і використовується для обчислення ефективного індексу при вході або виходженні з масиву, який насправді завжди є позитивним [0]
.
${array[@]}
подвійні лапки. В іншому випадку буде виконано розбиття слів, і ви отримаєте небажані результати на введеннях типуarray=("item 1" "item 2" "item 3")
.