【发布时间】:2016-10-18 23:36:07
【问题描述】:
我有以下 Lua 类:
-- file: myClass.lua
local myClass = {}
myClass.__index = myClass
setmetatable(myClass, {
__call = function (cls, ...)
return cls.new(...)
end,
})
function myClass.new(init_size)
local self = setmetatable({}, myClass)
self.max_size = init_size
return self
end
function myClass:set_max_size(x)
self.max_size = x
print(myClass:get_max_size()) -- <= [1]
end
function myClass:get_max_size()
return self.max_size
end
return myClass
在终端中,执行以下命令后,输出不是我所期望的。
> myClass = require 'myClass'
> myClassObj = myClass(5)
> myClassObj:set_max_size(10) ---<== this line will print nil instead of 10 as expected.
有什么想法吗?
【问题讨论】: