Lua勉強日記(3)
2008/05/23
制御構造について知るために、簡易ユーザ認証風な関数を書いてみました。
syntax.lua
users = {{ name = "john", password = "xxxxx"},{ name = "paul", password = "yyyyy"}}function certify(name, password)for i, user in ipairs(users) doif user.name == name thenif user["password"] == password thenreturn trueelsereturn falseendendendendif certify("john", "xxxxx") thenprint("johnは認証された。")elseprint("johnは認証されなかった。")endif certify("paul", "yyxxzz") thenprint("paulは認証された。")elseprint("paulは認証されなかった。")end
実行結果
C:\lua_example>lua5.1.exe syntax.lua johnは認証された。 paulは認証されなかった。
usersというテーブルに、ユーザデータを定義しました。
certifyという関数で、引数の名前とパスワードで認証判定します。認証が成功した場合は true を返し、認証が失敗した場合は false を返します。
for は、ipairs 関数を使って、テーブル内部のデータを舐めてます。
Luaには、switch文は無いようです。(perl にも無かったし、特に困らない)
for以外の繰り返しは以下があります。
- while 条件 do … end
- repeat … until 条件
ループを抜けるためのbreak文がありますが、continue文はありません。だから、ループ内でcontinueを使いたい場合には、if文で囲む必要があります。
これは、インデントが深くなってしまうので嬉しくない。あまり広い(行数の多い)ループは書くな!という方針でFAかな。