In LeekScript esistono gli array "classici" di tipo "Array" e gli array associativi di tipo "Map".
Questo tipo di array un po' particolare permette di rispondere a un problema: supponiamo che io voglia tenere in memoria le caratteristiche del mio porro, come la forza, la saggezza, la resistenza,... Ho quindi creato un array:
var monPoireau = []; push(monPoireau, getStrength()); push(monPoireau, getWisdom()); push(monPoireau, getResistance());
Il mio problema, ora, è che devo ricordarmi che la forza è nella 1ª casella, la saggezza nella 2ª e la resistenza nella 3ª... Adesso va bene, ma tra 2 settimane me ne sarò completamente dimenticato!
La soluzione: invece di numerare le caselle, sarebbe più ingegnoso dare loro un nome esplicito. Ebbene, è possibile, e si chiamano array associativi!
var monPoireau = [:]; monPoireau["force"] = getStrength(); monPoireau["sagesse"] = getWisdom(); monPoireau["resistance"] = getResistance(); debug( monPoireau ); // Mostrerà qualcosa del tipo ["force" : 150, "sagesse" : 20, "resistance" : 95] debug( monPoireau["force"] ); // Mostrerà 150
I nomi espliciti (li chiamiamo chiavi) sono qui "force", "sagesse" e "resistance". In questo esempio si vede come dichiararle e come usarle. Le chiavi possono essere interi o stringhe di caratteri.
Pratico! Ma allora, come si fa a scorrere un array associativo?
Il ciclo seguente:
for (var k = 0; k maMap = [:];
In modalità rigorosa questa tipizzazione è indispensabile: su una Map dichiarata semplicemente con var m = [:], gli inserimenti non compilano (errore di tipo), mentre sono accettati su una Map.
Poi si può scorrere la map così:
for (string maCle : integer maValeur in maMap) { debug("Pour la clé " + maCle + " la valeur qui correspond est " + maValeur); }
Ora sta a te usarli. Vedrai, una volta che si è imparato a usarli, non se ne può più fare a meno!
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.