Luaで擬似switch文を実装する
Luaにはswitch文に該当する構文がないので基本的にはifelseを使用して進めていく形になりますが、比較回数が増えれば増えるほど無駄が発生してしまいます。
そこで今回はLuaのテーブルを利用して簡単な擬似switch文を作ってみます。
まずはswitch文として使う変数を宣言します。
予期しない誤動作を防ぐためにローカル変数とした方が安全でしょう。
local switch = {}
次に、C言語のswitch文のcaseにあたる部分を実装していきます。
先ほどのテーブル型の変数に関数を代入しましょう。
switch[値]=function() 文 end
Luaのテーブル型を利用した実装なので、値には文字列を使用する事も可能です。
文字列を使う場合はダブルクォーテーションでくくるのを忘れないようにしましょう。
最後にswitch文を動かす為に今回作成した関数を記述します。
switch[式]()
以上で、式の結果に応じて実行結果を分ける事ができます。
ここまでのコードを纏めると以下のようになります。
local switch={} switch[値1]=function() 文1 end switch[値2]=function() 文2 end switch[式]()