連想配列(Map)

連想配列(Map)

LeekScript には、「Array」型の「普通の」配列と、「Map」型の連想配列があります。

この少し変わった配列は、次のような問題を解決してくれます。たとえば、自分のネギの特徴(強さ、知恵、抵抗など)を記憶しておきたいとしましょう。 そこで配列を作りました。

var monPoireau = []; push(monPoireau, getStrength()); push(monPoireau, getWisdom()); push(monPoireau, getResistance());

ここで困るのは、強さが 1 番目、知恵が 2 番目、抵抗が 3 番目の要素だと覚えておかなければならないことです。今はまだいいですが、2 週間もすればすっかり忘れてしまうでしょう!

解決策:要素に番号を振る代わりに、わかりやすい名前を付けたほうがずっと賢明です。実はそれができるのです。それが連想配列です!

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); }

あとは実際に使ってみるだけです。 一度使い方を覚えたら、もう手放せなくなりますよ!