コマンドライン引数
プログラミング言語 Lua でコマンドライン引数を取得する方法を調べてみた。
http://d.hatena.ne.jp/eggman/20070918/1190122836
- 引数はテーブル arg に格納されている。
- テーブルの要素数は、#arg (長さオペレータ# + 変数名)で表す。
- arg[0] には、ファイル名が格納されている。
面白いと思ったのは、引数指定がなければ arg の要素の数が 0 となる点。
自然な結果だけれど、arg は空ではない(arg[0] や arg[-1] には要素が入っている)から、結果が 2 になってもおかしくないと思ったから。
サンプル (arg.lua) :
print("length = " .. #arg) for i = -1, #arg do print("arg[" .. i .. "] = " .. arg[i]) end
実行結果:
$ lua arg.lua length = 0 arg[-1] = lua arg[0] = arg.lua $ lua arg.lua a b c length = 3 arg[-1] = lua arg[0] = arg.lua arg[1] = a arg[2] = b arg[3] = c
Lua での長さとは、インデックス 1 から連続している要素数のこと。
インデックスが 0 以下や1から連続していない場合は、カウントの対象外になる。
この性質をうまく利用してるってことだね。