Lua勉強日記(4)
2008/05/23
Luaは、オブジェクト指向を真面目にはサポートしていませんが、オブジェクト指向の概念を使ってプログラミングできるくらいはサポートされています。(この辺のスタンスはperlに似てる)
前回のコードをちょっと変更します。
syntaxoop.lua
UserService = { users = {{ name = "john", password = "xxxxx"},{ name = "paul", password = "yyyyy"}}, certify = function (name, password)for i, user in ipairs(UserService.users) doif user.name == name thenif user["password"] == password thenreturn trueelsereturn falseendendendreturn falseend}if UserService.certify("john", "xxxxx") thenprint("johnは認証された。")elseprint("johnは認証されなかった。")endif UserService.certify("paul", "yyxxzz") thenprint("paulは認証された。")elseprint("paulは認証されなかった。")end
UserServiceというテーブルに、ユーザデータとcertify関数を入れて定義しました。関数も、数値や文字列と同じようにテーブルの値として代入することができます。
これで擬似的に、UserServiceというクラスを定義したような感じになりました。certify関数は、UserServiceクラスのstatic関数のように振舞わせることができました。
オブジェクト指向というからには、new したりしないとです。(newしたりするのはは次回)