Um índice zero é perfeitamente válido se você pensar no índice como sendo realmente um deslocamento do endereço base de uma matriz. Essa é a norma de fato, embora varie de dialeto para dialeto. Com a antiga linguagem jovial, [0]
na verdade continha o tamanho máximo da matriz. então começou com [1]
.
Com algumas implementações básicas, você pode optar arbitrariamente por ter um 0
ou 1
como o primeiro índice. E pelo menos um básico permite designar matrizes para o índice do fron [n]
para [m]
. onde n
e m
pode ter qualquer valor inteiro, mesmo negativo, contanto que n
seja menor ou igual a m
. O valor ao qual n
eles são subtraídos dos [index]
inseridos, como index-n = 0
se o índice correspondesse n
.
Mas você pode fazer a mesma coisa e muito mais em seu próprio código. Você pode até reverter a ordem de uma matriz desta maneira:
dim array(0, abs(m-n));
step=sign(m-n);
if n > m then
base=m
else
base=n;
fi
Este exemplo de código é, na verdade, apenas parcialmente de um idioma. Eu só queria que fosse mais legível. A variável step é usada para controlar a direção aparente na qual você está se movendo, seja positiva ou negativa, e é usada para calcular o índice efetivo ao entrar ou sair da matriz, na qual é sempre sempre positivo [0]
.
${array[@]}
aspas duplas. Caso contrário, a divisão de palavras será realizada e você obterá resultados indesejáveis, em entradas comoarray=("item 1" "item 2" "item 3")
.