*Luaリファレンス 要注意点 ~制御構造~ [#sf56524d] **repeat~untilと、local変数 [#q0e4729d] #sh(lua){{ repeat local x until x < 10000 }} -というようにローカル変数はuntil条件部で使用可能 **数値形式のfor [#ob8e34a9] #sh(lua){{ for var=exp1, exp2, ex3 do … end }} #sh(lua){{ for var=exp1, exp2 do … end }} -というようにexp3は省略可能。~ 一般のC、Javascript、Perlとは異なり、~ ''exp1=初期値、exp2=最大値、exp3=変動値'' なので注意。~ #sh(lua){{ for i=1, 10, 2 do print(i) end }} **ジェネリックfor [#s74b5e56] #sh(lua){{ for i, v in ipairs(tbl) do -- インデックスと値 end for k, v in pairs(tbl) do -- キーと値 end for k in pairs(tbl) do -- キーだけ (値は受け取っていないだけ。多重代入だが1つしか受け取っていない。) end for _, v in pairs(tbl do -- キーと値、両方受け取っているが、キーを使う気が無い場合によく利用される書き方。「_」を使うのは、ダミー的に変数を受け取る際の習慣。 end }} **forとbreak [#aa14c498] -C,Perl,Pythonなどと異なり, LUAではbreakを「ブロックの最後]にしか記述出来ない。~ #sh(lua){{ for i=1, 10 do break -- エラー。ブロックの最後じゃないのにbreakしている。 print(i) end }} -このため、デバッグ時等で、一時的にbreakしてしまいたい場合は、以下のようにブロック化する。 #sh(lua){{ for i=1, 10 do do break end -- OK print(i) end }}