Luaリファレンス 要注意点 ~制御構造~

repeat~untilと、local変数

repeat
    local x
until x < 10000
  • というようにローカル変数はuntil条件部で使用可能

数値形式のfor

for var=exp1, exp2, ex3 do
    …
end
for var=exp1, exp2 do
    …
end
  • というようにexp3は省略可能。
    一般のC、Javascript、Perlとは異なり、
    exp1=初期値、exp2=最大値、exp3=変動値 なので注意。
for i=1, 10, 2 do
    print(i)
end 

ジェネリックfor

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

  • C,Perl,Pythonなどと異なり, LUAではbreakを「ブロックの最後]にしか記述出来ない。
    for i=1, 10 do
        break    -- エラー。ブロックの最後じゃないのにbreakしている。
    
        print(i)
    end
    
  • このため、デバッグ時等で、一時的にbreakしてしまいたい場合は、以下のようにブロック化する。
    for i=1, 10 do
        do break end    -- OK
    
        print(i)
    end
    

トップ   差分 履歴 リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-09-03 (水) 00:00:00