快速提问,我如何从SimpleClass变量获取名为props的表?
local SimpleClass = {}
local SimpleClass_mt = {__index = SimpleClass}
function SimpleClass:new()
local props = {name = " yolo"}
setmetatable(props, SimpleClass_mt)
return props
end
--get props from SimpleClass here
--my attempt here
local propsFromSimpleClass = getmetatable(SimpleClass)--clearly won't work
答案 0 :(得分:2)
我认为你有点误导自己。
尝试这种方法
<强> simple_class.lua 强>
SimpleClass = {}
SimpleClass.__index = SimpleClass
function SimpleClass:new()
local obj = {}
setmetatable(obj, SimpleClass)
obj.name = "yolo"
return obj
end
<强> example.lua 强>
require "simple_class"
local instance = SimpleClass:new()
print(instance.name)
-- yolo
如需更多帮助,我会从Lua用户wiki
查看此Simple Lua Classes答案 1 :(得分:1)
SimpleClass:new()
返回“props”表:此函数模仿创建“class”SimpleClass的新“实例”。因此,如果你这样做
p = SimpleClass:new()
然后p
是由props
表的new(self)
函数创建的SimpleClass
表实例:
print(p.name)
将打印“yolo”。
重要的是要了解每次调用SimpleClass:new()
时都会得到一个新表,SimpleClass:new()
内部绑定到一个名为“props”的本地变量。但是你不能得到“SimpleClass中的props表”:props
中SimpleClass.new(self)
引用的表代表SimpleClass类的一个实例。 SimpleClass
表没有名为props的表。