在 LeekScript 中,既有“经典”的 Array 类型数组,也有 Map 类型的关联数组。
这种有点特别的数组可以解决这样一个问题:假设我想把我的韭菜的各项特性记在内存里,比如力量、智慧、抗性…… 于是我做了一个数组:
var monPoireau = []; push(monPoireau, getStrength()); push(monPoireau, getWisdom()); push(monPoireau, getResistance());
现在的问题是,我必须记住力量在第 1 格、智慧在第 2 格、抗性在第 3 格……眼下还好,可两个星期以后,我肯定全忘光了!
解决办法:与其给格子编号,不如给它们起一个明确的名字,这样更巧妙。这是可以做到的,它就叫关联数组!
var monPoireau = [:]; monPoireau["force"] = getStrength(); monPoireau["sagesse"] = getWisdom(); monPoireau["resistance"] = getResistance(); debug( monPoireau ); // 将显示类似 ["force" : 150, "sagesse" : 20, "resistance" : 95] 的内容 debug( monPoireau["force"] ); // 将显示 150
这里的明确名字(我们称之为键)就是 "force"、"sagesse" 和 "resistance"。这个例子展示了如何声明它们以及如何使用它们。 键可以是整数,也可以是字符串。
真方便!那么,要怎样遍历一个关联数组呢?
下面这个循环:
for (var k = 0; k maMap = [:];
在严格模式下,这种类型声明是必不可少的:对于只用 var m = [:] 声明的 Map,插入操作无法通过编译(类型错误),而对于 Map 则可以。
然后可以这样遍历这个 map:
for (string maCle : integer maValeur in maMap) { debug("Pour la clé " + maCle + " la valeur qui correspond est " + maValeur); }
现在,轮到你来使用它们了。 你会发现,一旦学会了用它们,就再也离不开了!
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.