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) do if user.name == name then if user["password"] == password then return true else return false end end end return false end } if UserService.certify("john", "xxxxx") then print("johnは認証された。") else print("johnは認証されなかった。") end if UserService.certify("paul", "yyxxzz") then print("paulは認証された。") else print("paulは認証されなかった。") end
UserServiceというテーブルに、ユーザデータとcertify関数を入れて定義しました。関数も、数値や文字列と同じようにテーブルの値として代入することができます。
これで擬似的に、UserServiceというクラスを定義したような感じになりました。certify関数は、UserServiceクラスのstatic関数のように振舞わせることができました。
オブジェクト指向というからには、new したりしないとです。(newしたりするのはは次回)