O que é uma matriz?
Arrays são indexados usando números, eles geralmente começam em 0 e vão para N-1 o número de elementos em uma matriz.
O que é uma matriz associativa?
Matrizes associativas são um par de valores-chave, muitas vezes chamado de hash. Em vez de usar um inteiro fixo para indexar a matriz, use um valor, uma string, para identificar cada elemento na matriz associativa.
Matrizes no Unix
Arrays (ambos os tipos) são usados em muitas das ferramentas do Unix. AWK e Bash são 2 e você provavelmente verá ambos usados se você fizer algum trabalho de script. Linguagens de programação como Perl, Python e Ruby também possuem esses tipos de dados.
Você pode conferir esta página que mostra exemplos de ambos os tipos de arrays no AWK, intitulados: Arrays AWK explicados com 5 exemplos práticos .
Exemplos
script de matriz - array.awk
$ cat array.awk
#!/usr/bin/awk -f
BEGIN{
some_array[1] = "Hello"
some_array[2] = "Everybody"
some_array[3] = "!"
print some_array[1], some_array[2], some_array[3]
}
Execução da amostra:
$ ./array.awk
Hello Everybody !
matriz associativa - assoc_arr.awk
$ cat assoc_arr.awk
#!/usr/bin/awk -f
BEGIN{
debts["Kim"] = 50
debts["Roberto"] += 70
debts["Vic"] -= 30
print "Vic paid 30 dollars, but still owes", debts["Vic"]
}
Execução da amostra:
$ ./assoc_arr.awk
Vic paid 30 dollars, but still owes -30
Por que eu precisaria usar um?
Arrays (ambos os tipos) são extremamente úteis ao lidar com conjuntos de dados relacionados. Se eu tiver um monte de medições de temperatura de uma cidade por um mês. Uma matriz seria ideal para armazenar esses valores. Armazená-los em uma matriz permite ao programador lidar com eles como um conjunto relacionado de coisas. Se eu apenas os armazenasse em variáveis, seria muito mais difícil escrever códigos para operar contra o conjunto, se eu dissesse que queria convertê-los de Fahrenheit para Centígrados.
Além disso, há meta-dados que você obtém gratuitamente usando esse tipo de estrutura de dados. Eles contêm automaticamente o número de elementos neles, então, se eu precisasse descobrir quantos valores foram coletados para o mês, eu simplesmente teria que descobrir o "tamanho" da matriz ou contar o número de elementos nela. , para adquirir esta informação.