xlua学習の道(三)Luaオブジェクト向け
1903 ワード
単純なインスタンス
【lua作成オブジェクト】もし私たちが一人いたら、この人の名前は張三、年齢18、luaの中で私たちはこのように実現することができます.
それでは今私达はまた人が来て、名前は李四で、年齢は22で、そこで私达はまた1回书いて、このようにします
もし私たちが100人いたら、1000人は煩わしいので、テンプレートPersonを書いて、彼にオブジェクトを作成する方法を書くことができます.
しかし、このように毎回私たちは自分を伝えなければならないのも面倒で、lua言語は私たちに文法の砂糖を提供して、私たちは:代替することができます.呼び出し方法、使用:selfを自動的に転送します
luaメソッドはリロードをサポートしており、多くのnewメソッドを書くことができます.これはc#の構造メソッド【lua継承】に似ています.
【lua作成オブジェクト】もし私たちが一人いたら、この人の名前は張三、年齢18、luaの中で私たちはこのように実現することができます.
person={name=" ",age=18}
それでは今私达はまた人が来て、名前は李四で、年齢は22で、そこで私达はまた1回书いて、このようにします
person2={name=" ",age=22}
もし私たちが100人いたら、1000人は煩わしいので、テンプレートPersonを書いて、彼にオブジェクトを作成する方法を書くことができます.
Person={name="",age=1}
function Person.new(self,name,age)
t={}
setmetatable(t,{__index=self})
t.name=name
t.age=age
return t
end
person=Person.new(Person," ",18)
person2=Person.new(Person," ",22)
しかし、このように毎回私たちは自分を伝えなければならないのも面倒で、lua言語は私たちに文法の砂糖を提供して、私たちは:代替することができます.呼び出し方法、使用:selfを自動的に転送します
Person={name="",age=1}
function Person:new(name,age)
t={}
setmetatable(t,{__index=self})
t.name=name
t.age=age
return t
end
person=Person:new(" ",18)
person2=Person:new(" ",22)
luaメソッドはリロードをサポートしており、多くのnewメソッドを書くことができます.これはc#の構造メソッド【lua継承】に似ています.
person={name="",age=1} --
function person:new() -- c#
t={} --
setmetatable(t,{__index=self}) -- , __index
return t --
end
function person:new(name,age) --
t={}
setmetatable(t,self) -- , self t
self.__index=self --self __index
t.name=name
t.age=age
return t
end
father=person:new() --
function father:learn() -- learn
print(self.name.." ")
end
son=father:new(" ",23) --
son:learn() -- learn ,