Luaへの名前空間っぽいもの導入メモ
Stage1_God = { function func() log("func") wait(-1) end function main() log("main") func() end }
動かない。
http://sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html
によればテーブルコンストラクタの要素はexpであり、functionはexpであるが、"function <関数名>(<引数>)"の糖衣構文は全体でstatだから。
Stage1_God = { func = function() log("func") wait(-1) end main = function() log("main") func() end }
動かない。
Stage1_God = { func = function() log("func") wait(-1) end main = function() log("main") Stage1_God.func() end }
動かない。
テーブルコンストラクタ内ではテーブルコンストラクタ自体を参照することは出来ないし、テーブル名を省略して関数を呼ぶことも出来ない。
Stage1_God = {} Stage1_God.func = function() log("func") wait(-1) end Stage1_God.main = function() log("main") Stage1_God.func() end
動く。
Stage1_God = {} Stage1_God.main = function() log("main") Stage1_God.func() end Stage1_God.func = function() log("func") wait(-1) end
動く。
テーブルさえ参照できれば、スクリプトの読み込み時点でStage1_God.funcがnilだったとしても関数呼び出しの形で書ける。
結局のところ、Luaの糖衣構文ってやつは今回殆ど使えないようです。
なかなか書くのがめんどくさそうになってまいりました。