Class 从Lua的一个班级得到一张桌子
快速提问,如何从SimpleClass变量获取名为props的表Class 从Lua的一个班级得到一张桌子,class,lua,Class,Lua,快速提问,如何从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 Simpl
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
我觉得你有点误导自己 试试这种方法 simple_class.lua
SimpleClass = {}
SimpleClass.__index = SimpleClass
function SimpleClass:new()
local obj = {}
setmetatable(obj, SimpleClass)
obj.name = "yolo"
return obj
end
require "simple_class"
local instance = SimpleClass:new()
print(instance.name)
-- yolo
示例.lua
SimpleClass = {}
SimpleClass.__index = SimpleClass
function SimpleClass:new()
local obj = {}
setmetatable(obj, SimpleClass)
obj.name = "yolo"
return obj
end
require "simple_class"
local instance = SimpleClass:new()
print(instance.name)
-- yolo
要获得更多帮助,我可以从Lua users wiki中查看它。SimpleClass:new()返回一个“props”表:该函数模拟创建“class”SimpleClass的新“实例”。因此,如果你这样做
p = SimpleClass:new()
然后p
是由SimpleClass
表的new(self)
函数创建的props
表实例:
print(p.name)
将打印“yolo”
必须了解,每次调用
SimpleClass:new()
时,都会得到一个新表,该表在SimpleClass:new()中绑定到一个名为“props”的本地变量。但是您无法从SimpleClass中获取“props表”:在SimpleClass中由props
引用的表。new(self)
表示SimpleClass类的一个实例。SimpleClass
表没有名为props的表 我已经做了几次失败的尝试,但我仍将发布它以满足您的条件。local propsFromSimpleClass=SimpleClass:new()
?