Person = {name = "siki",age = 16}
function Person:eat ()
print(self.name.."在吃飯")
end
function Person:new(o)
loacl t = o or {}
setmetatable(t,{__index = self})
return t
end
person1 = Person:new()
person1.name = "xiaoli"
print(person1.name)
執行的時候
>lua -e "io.stdout:setvbuf 'no'" "duixiang.lua"
xiaoli
>Exit code: 0
另外
setmetatable(t,{__index = self})
等價於
setmetatable(t,self)
self.__index = self
另外繼承的用法 如下
Person = {name = "siki",age = 16}
function Person:eat ()
print(self.name.."在吃飯")
end
function Person:new(o)
local t = o or{}
setmetatable(t,{__index = self})
return t
end
person1 = Person:new()
person1.name = "xiaoli"
print(person1.name)
Student = Person:new()
Student.grade = 1
stu1 = Student:new()
print(stu1.grade)