lua:switch
概要
- LuaにはSwitch構文がない。
- だが、TIC-80だと必須となるメイン関数(Callback)が存在しており、これを利用する必要がある。
- つまりツリー構造としなければならないが、毎回if分岐を使うのも面倒。
- そこで、switch構文っぽく実装ができれば記述を大きくしなくて済む。また改造も局所的で済む。
- 参考資料
TIC-80での実装
- 元実装とそれほど変わりない
local StateId = { Idle = 1, Run = 2, Attack = 3, } local state=2 function SwitchCaseIdle(arg) return 1+arg*10 end function SwitchCaseRun(arg) return 2+arg*10 end function SwitchCaseAttack(arg) return 3+arg*10 end -- switchぽい関数分岐 function SwitchMain(stateId, arg) local switchCase={} switchCase[StateId.Idle] = SwitchCaseIdle switchCase[StateId.Run] = SwitchCaseRun switchCase[StateId.Attack] = SwitchCaseAttack switchCase[stateId](arg) end
function TIC() print SwitchMain(state,1) end
lua/switch.txt · 最終更新: by machiaworx