有更短的方法可以做到这一点:
local thisismytable = {
non = sequitur
}
thisismytable.whatismytable = thisismytable
任何帮助将不胜感激。 我不想重新创建预先存在的功能。
答案 0 :(得分:5)
没有。
如果您能够区分这两个表达式thisismytable:whatismytable()
而不是thisismytable.whatismytable
,您可以这样做:
local thisismytable = {
non = sequitur,
whatismytable = function (self) return self end
}
测试:
print(thisismytable)
print(thisismytable:whatismytable())
更多用法:
print(thisismytable:whatismytable().non)
答案 1 :(得分:4)
你做不到。我使用辅助函数。
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)