SuperColliderで用意されているDictionaryクラスに初挑戦してみた。
連想配列と一口に言っても言語によって実装はまちまち。PHPでは配列と連想配列に区別はなくどちらもArrayだし、Javascriptでは連想配列はオブジェクトとして扱われ配列とは別だ。ま、詳しくはないんだけど、とにかく各言語によって違うのは確か。
ちなみに、スパコと同じくSmalltalkの系譜を引くObjective-Cにはその名もズバリNSDictionaryクラスが存在する。ので、手持ちのCocoaプログラミングの本で辞書のページを引いてみたがやはりひと言で説明するのは難しい。まぁ、平たく言うとキーと値をセットにして複数保存しておける仕組みのことだ。
使いかたは、newメッセージで辞書を作りaddメッセージで辞書に項目を足していく。
d = Dictionary.new; d.add('monkey' -> 0).postln; d.add('robot' -> 1).postln;
このコードで↓のような辞書ができる。
Dictionary[ (monkey -> 0), (robot -> 1) ]
辞書ができたら引かなければならない。参照するには配列と同じatメッセージを使う。
d.at('robot');
この結果はrobotをキーとする値だから、「1」になる。削除は同様にremoveAtメッセージを使う。