shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Vetores associativos


From: Fernando Mercês
Subject: Re: [shell-script] Vetores associativos
Date: Fri, 2 Mar 2012 18:44:45 -0300

Eu tenho que estar no boteco às 19h mas estou aqui, lendo o fonte do bash
por sua culpa!

Pois é, eu vi no fonte (apt-get source bash) do bash 4.2 que a
implementação dos arrays associativos é usando uma hash table mas não
consegui responder ainda sua pergunta quanto à ordenação. Na verdade a
inserção parece normal, sem ordenar, com xmalloc(). Já a listagem eu não
identifiquei ainda qual função faz, mas creio que seja hash_walk
(hashlib.c:325), mas agora é hora de ir pro buteco. =D

Se ninguém responder a gente pode continuar, mas há de concordar que não
vai servir para nada descobrir isso, do ponto de vista de programação com o
bash. :)

Abraço

Att,

Fernando Mercês
Linux Registered User #432779
www.mentebinaria.com.br
------------------------------------
"Ninguém pode ser escravo de sua identidade; quando surge uma possibilidade
de mudança é preciso mudar". (Elliot Gould)


2012/3/2 Valtoir <address@hidden>

> **
>
>
> O problema de ser autodidata é que o professor nunca dá folga pra gente.
>
> O Rodrigo Boechat citou o link
>
>
> http://www.dicas-l.com.br/cantinhodoshell/cantinhodoshell_20100120.php#.T0lbjl-oOCg
>
> de um artigo escrito pelo Júlio sobre vetores associativos. Fiquei
> curioso, fiz uns testes iniciais e um pequeno script de agenda telefônica
> tentando fazer uso desse recurso. Depois de apanhar bastante, cheguei a
> alguns resultados malucos. Relendo o artigo com mais atenção, percebi o
> seguinte
>
> (citação):
> ---------------------------
> Exemplos:
>
> $ declare -A Animais # Obrigatório para vetor associativo
> $ Animais[cavalo]=doméstico
> $ Animais[zebra]=selvagem
> $ Animais[gato]=doméstico
> $ Animais[tigre]=selvagem
>
> $ echo ${!Animais[@]}
> gato zebra cavalo tigre
>
> Repare que os valores não são ordenados, ficam armazenados na ordem que são
> criados, diferentemente dos vetores inteiros que ficam em ordem numérica.
> ---------------------------
>
> Agora a pergunta: Se os valores são ordenados na ordem em que são criados,
> porque o resultado de "echo ${!Animais[@]}" não é
>
> cavalo zebra gato tigre
> ao invés de
> gato zebra cavalo tigre?
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]