Os arrays associativos ou Map

Os arrays associativos ou Map

Em LeekScript, existem os arrays "clássicos" de tipo "Array" e os arrays associativos de tipo "Map".

Esse tipo de array um pouco particular vai permitir resolver um problema: suponha que eu queira guardar na memória as características do meu alho-poró, como a força, a sabedoria, a resistência,... Então fiz um array:

var monPoireau = []; push(monPoireau, getStrength()); push(monPoireau, getWisdom()); push(monPoireau, getResistance());

Meu problema, agora, é que preciso me lembrar de que a força está na 1ª posição, a sabedoria na 2ª e a resistência na 3ª... Agora mesmo, tudo bem, mas daqui a 2 semanas terei esquecido completamente!

A solução: em vez de numerar as posições, seria mais engenhoso dar a elas um nome explícito. Pois bem, isso é possível e se chama arrays associativos!

var monPoireau = [:]; monPoireau["force"] = getStrength(); monPoireau["sagesse"] = getWisdom(); monPoireau["resistance"] = getResistance(); debug( monPoireau ); // Mostrará algo do tipo ["force" : 150, "sagesse" : 20, "resistance" : 95] debug( monPoireau["force"] ); // Mostrará 150

Os nomes explícitos (chamados de chaves) são aqui "force", "sagesse" e "resistance". Vemos neste exemplo como declará-las e como usá-las. As chaves podem ser inteiros ou strings.

Prático! Mas então, como fazemos para percorrer um array associativo?

O laço a seguir:

for (var k = 0; k maMap = [:];

Em modo estrito, essa tipagem é indispensável: em uma Map declarada simplesmente com var m = [:], as inserções não compilam (erro de tipo), enquanto são aceitas em uma Map.

Em seguida, podemos percorrer a map assim:

for (string maCle : integer maValeur in maMap) { debug("Pour la clé " + maCle + " la valeur qui correspond est " + maValeur); }

Agora é a sua vez de usá-los. Você vai ver: depois que aprendemos a usá-los, não conseguimos mais viver sem!