在 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 = [:];
在严格模式下,这种类型声明必不可少:如果 Map 只是简单地用 var m = [:] 声明,插入操作会无法编译(类型错误),而在 Map 上则可以正常插入。
然后就可以这样遍历这个映射:
for (string maCle : integer maValeur in maMap) { debug("键 " + maCle + " 对应的值是 " + maValeur); }
现在轮到你来用了。 你会发现,一旦学会了,就再也离不开它们!
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.