平日終了

週の前半を飛ばし気味で行った分、後半失速しました。ちょっと仕事に集中しようかと思って。おかげで脳内キー配置が会社 PC モードになってしまい、打ち間違い多発中です。今晩も少し作業はしますが、AS3 とは別のほうです。
AS3 については、今週になって初めて知った事実があります。変数のスコープについてです。AS3 って、スコープの最小単位が関数なんですね。for (var i:uint = 0; ...) みたいなのを書いたときに警告が出ているなぁと思ったら、スコープが原因だったようです。これ、結構面倒なような……。考え方を変えれば、細かい関数に分ける癖がつくのでいいのかもしれません。あと関数オブジェクトをたくさん使うとか。そういった理由で思いついたのですが、switch 文を以下のように書くのが新感覚です。

var table:Array = [
  function ():void { /* case 0: の処理 */ },
  function ():void { /* case 1: の処理 */ },
  function ():void { /* case 2: の処理 */ }
];

/// switch (i) { ... } と書くところを
table[i]();

あぁ、なんという変態的コード。C/C++ でも関数ポインタテーブル自体は作れますが、わざわざ関数を用意してやらなきゃいけないのが面倒なんですよね。boost::lambda とかの力で無名関数ができるのかもしれませんが、勉強不足でよく分かりません。