【lua】小計setmetatable
1248 ワード
local base = {x = 5, y = 10, width = 100, height = 100}
base.__index = base
function base:new()
local obj = {}
setmetatable(obj, self)
return obj
end
function base:Print()
print('x:' .. self.x)
print('y:'.. self.y)
print('width:' .. self.width)
print('height:'.. self.height)
end
local child = { color = 'red', size = 100 }
child.__index = child
setmetatable(child, base)
function child:new(color, size)
local obj = base:new()
setmetatable(obj, self)
obj.color = color
obj.size = size
return obj
end
function child:Print()
print('x:' .. self.x)
print('y:'.. self.y)
print('width:' .. self.width)
print('height:'.. self.height)
print('color:' .. self.color)
print('size' .. self.size)
end
local c = child:new('blue', 1000)
c:Print()
local b = base:new()
b:Print()
ずっとluaの中のmetatableについてよく知らなかったので、今日試してみましたが、思ったほど難しくはありませんでした.