【发布时间】:2019-12-06 21:20:23
【问题描述】:
过去一周我一直在玩 Lua,最终我编写了这种平静的代码。我发现您可以动态创建“继承”其他函数的新函数非常有用,因此程序员必须为其命名。我的问题是:
这叫什么?
有没有更好的方法来做到这一点? (循环数据结构并创建“改进”现有功能的附加功能)
D = {
name = {
value = nil,
offset = 0,
update = function (self)
self.value = "Berlin"
end,
},
}
--Dynamic function definition
for i in pairs(D) do
D[i].upAndWrite = function(self)
self:update()
print("upAndWrite was here")
end
end
print(D.name.value)
D.name:upAndWrite()
print(D.name.value)
结果:
nil
upAndWrite was here
Berlin
【问题讨论】:
标签: function lua metaprogramming