从密钥中检索表
答
没有,但你可以保存在元素的参考表本身:
tbl = {}
tbl.Italy = {"Roma", tbl}
print(tbl == tbl.Italy[2])
打印true
。
答
你不能做你想要的属性(表中的字段)做什么,但你可以用方法做到这一点:
function tbl.getItaly(self)
return self.Italy
end
然后tbl:getItaly()
返回TBL的意大利;在方法中,self
由Lua解释器隐式给出,并表示包含被调用方法的表。请注意,您需要使用冒号而不是点语法。
答
关键是除nil
以外的任何值。在这种情况下,您有一个string
值:“意大利”。 “父母”或“所有者”的一般概念没有任何价值。尽管如此,如果需要,您可以创建适用该概念的结构。
local capitals = {}
capitals.Italy = { capital = "Roma", collection = capitals }
capitals["Czech Republic"] = { capital = "Prague", collection = capitals }
local playwrights = {}
playwrights["William Shakespeare"] = { born = 1564, died = 1616, collection = playwrights }
local fact = capitals.Italy
print(fact.collection == capitals)