Нульовий індекс цілком справедливий, якщо ви вважаєте, що індекс фактично є зсувом від базової адреси масиву. Це насправді норма, хоча вона варіюється від діалектної до діалектної. Зі старою мовою 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").