En LeekScript existen los arrays "clásicos" de tipo "Array", y los arrays asociativos de tipo "Map".
Este tipo de array un poco particular va a permitir responder a un problema: supongamos que quiero guardar en memoria las características de mi puerro, como la fuerza, la sabiduría, la resistencia... Así que he hecho un array:
var monPoireau = []; push(monPoireau, getStrength()); push(monPoireau, getWisdom()); push(monPoireau, getResistance());
Mi problema, ahora, es que tengo que acordarme de que la fuerza está en la 1.ª casilla, la sabiduría en la 2.ª y la resistencia en la 3.ª... Ahora mismo, vale, ¡pero dentro de 2 semanas se me habrá olvidado por completo!
La solución: en lugar de numerar las casillas, sería más ingenioso darles un nombre explícito. Pues bien, es posible, ¡y se llama arrays asociativos!
var monPoireau = [:]; monPoireau["force"] = getStrength(); monPoireau["sagesse"] = getWisdom(); monPoireau["resistance"] = getResistance(); debug( monPoireau ); // Mostrará algo del estilo ["force" : 150, "sagesse" : 20, "resistance" : 95] debug( monPoireau["force"] ); // Mostrará 150
Los nombres explícitos (se llaman claves) son aquí "force", "sagesse" y "resistance". En este ejemplo se ve cómo declararlos y cómo usarlos. Las claves pueden ser enteros o cadenas de caracteres.
¡Práctico! Pero entonces, ¿cómo se recorre un array asociativo?
El bucle siguiente:
for (var k = 0; k maMap = [:];
En modo estricto, este tipado es indispensable: en una Map declarada simplemente con var m = [:], las inserciones no compilan (error de tipo), mientras que sí se aceptan en una Map.
Después se puede recorrer la map así:
for (string maCle : integer maValeur in maMap) { debug("Pour la clé " + maCle + " la valeur qui correspond est " + maValeur); }
Ahora te toca a ti usarlos. Ya verás, una vez que se sabe usarlos, ¡no se puede vivir sin ellos!
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.