Lua勉強日記(4)

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したりするのはは次回)

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください