In LeekScript bestaan er "klassieke" arrays van het type "Array", en associatieve arrays van het type "Map".
Dit wat bijzondere soort array biedt een antwoord op een probleem: stel dat ik de kenmerken van mijn prei wil onthouden, zoals kracht, wijsheid, weerstand, ... Ik heb dus een array gemaakt:
var monPoireau = []; push(monPoireau, getStrength()); push(monPoireau, getWisdom()); push(monPoireau, getResistance());
Mijn probleem is nu dat ik moet onthouden dat kracht in het 1e vakje staat, wijsheid in het 2e en weerstand in het 3e... Nu gaat dat nog, maar over 2 weken ben ik het helemaal vergeten!
De oplossing: in plaats van de vakjes te nummeren, zou het slimmer zijn om ze een duidelijke naam te geven. Wel, dat kan, en dat heet een associatieve array!
var monPoireau = [:]; monPoireau["force"] = getStrength(); monPoireau["sagesse"] = getWisdom(); monPoireau["resistance"] = getResistance(); debug( monPoireau ); // Toont iets als ["force" : 150, "sagesse" : 20, "resistance" : 95] debug( monPoireau["force"] ); // Toont 150
De duidelijke namen (we noemen ze sleutels) zijn hier "force", "sagesse" en "resistance". In dit voorbeeld zie je hoe je ze declareert en hoe je ze gebruikt. Sleutels kunnen gehele getallen of strings zijn.
Handig! Maar hoe doorloop je dan een associatieve array?
De volgende lus:
for (var k = 0; k maMap = [:];
In de strikte modus is deze typering onmisbaar: op een Map die gewoon met var m = [:] is gedeclareerd, compileren invoegingen niet (typefout), terwijl ze wel worden aanvaard op een Map.
Daarna kun je de map zo doorlopen:
for (string maCle : integer maValeur in maMap) { debug("Pour la clé " + maCle + " la valeur qui correspond est " + maValeur); }
Nu is het aan jou om ze te gebruiken. Je zult zien: als je ze eenmaal kunt gebruiken, kun je niet meer zonder!
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.