mieki256's diary



2011/09/30(金) [n年前の日記]

#2 [prog] Rubyでテーブルジャンプをするにはどう記述したらいいのか

アタリコードが 0x00〜0x1f まであって、それぞれについて処理内容を変えたい。

一般的には case 〜 when 〜 end を使って書くのがフツーだろうけど。調べてみたら Ruby の場合、 case 〜 when 〜 end は if 文の羅列になるらしい。…最悪。比較要素が多くて、後のほうでヒットしたら、処理が遅くなるではないか。もちろん、柔軟な比較判定が出来るというメリットはあるだろうけど、処理速度的にはあまり褒められたものじゃない。

こういう場合はテーブルジャンプで処理するのが妥当なはず。しかし、書き方が分からない。関数テーブル? メソッドテーブル? を作って処理を呼ぶような形にしたいのだが。

変数のスコープもよくわからない。 :

if 〜 end の中で宣言?した変数は、その中でのみ有効なのかと思いきや、外部に出ても有効らしい。…しっくりこない。これでは、使い捨ての変数に確保した領域がどんどん無意味に溜まっていくのでは。…メソッドを抜けたタイミングで全部解放されるから気にしなくてもいいのだろうか。そのへん、よくわからん。

以上です。

過去ログ表示

Prev - 2011/09 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project