【发布时间】:2013-11-11 02:02:47
【问题描述】:
我想设置表成员的索引,但仍然命名它们。这可能吗?
local table = {
["cat"] = {
["fish"] = { stuff = "bla1", stuff2 = "bla" },
["mouse"] = { stuff = "bla2", stuff2 = "bla" },
["bird"] = { stuff = "bla3", stuff2 = "bla" },
},
["dog"] = {
["fish"] = { stuff = "bla1", stuff2 = "bla" },
["mouse"] = { stuff = "bla2", stuff2 = "bla" },
["bird"] = { stuff = "bla3", stuff2 = "bla" },
},
}
table["cat"][1] 是 fish,但我希望 table["cat"][0] 是 fish,我该如何实现?
编辑:
我仍然希望能够使用table["cat"]["fish"] 访问fish。
编辑2:
当我尝试反之亦然时会怎样? http://repl.it/MCu 我做错了什么?
【问题讨论】:
-
table["cat"][1]是nil。你所有的表都是类似哈希的,没有一个是类似数组的。 -
哦 : O 那么我怎样才能让它们像数组一样呢?
-
有一个名为
table的标准模块。最好不要命名变量table以避免混淆,除非目标确实是本地化全局。其他标准模块coroutine、string、math、io、os和debug也是如此。重载这些名称中的任何一个都可能导致混淆。 -
是的,只是用于示例;)