初始化时如何自引用table
How to self-reference table during initialization
有没有更短的方法:
local thisismytable = {
non = sequitur
}
thisismytable.whatismytable = thisismytable
如有任何帮助,我们将不胜感激。
我不想重新创建预先存在的功能。
没有。
如果你能忍受这两个表达式 thisismytable:whatismytable()
而不是 thisismytable.whatismytable
之间的区别,你可以这样做:
local thisismytable = {
non = sequitur,
whatismytable = function (self) return self end
}
测试:
print(thisismytable)
print(thisismytable:whatismytable())
更多用法:
print(thisismytable:whatismytable().non)
你不能。我使用辅助函数。
local function ref(t)
for k, v in next, t do
if v == ref then t[k] = t end
end
return t
end
local root = ref{left=ref, right=ref}
assert(root.left == root)
有没有更短的方法:
local thisismytable = {
non = sequitur
}
thisismytable.whatismytable = thisismytable
如有任何帮助,我们将不胜感激。 我不想重新创建预先存在的功能。
没有。
如果你能忍受这两个表达式 thisismytable:whatismytable()
而不是 thisismytable.whatismytable
之间的区别,你可以这样做:
local thisismytable = {
non = sequitur,
whatismytable = function (self) return self end
}
测试:
print(thisismytable)
print(thisismytable:whatismytable())
更多用法:
print(thisismytable:whatismytable().non)
你不能。我使用辅助函数。
local function ref(t)
for k, v in next, t do
if v == ref then t[k] = t end
end
return t
end
local root = ref{left=ref, right=ref}
assert(root.left == root)