创建一个带有指定名称的表格?

我不太明白为什么这个函数调用不使用给定的变量值创建表格。有人能帮我澄清一下吗?

local table={}

local function createtable(tabname, propername)
    table.tabname={}
    table.tabname.propername=propername or "need a proper name"
end

createtable(foo, "first table")
createtable(bar, "second table")

for k,v in pairs(table) do
    print("table name: "..k)
end

输出:

表格名称:tabname

为什么它不使用函数调用中给定的变量值?

点赞
用户258523
用户258523

你的意思是 tab[tabname]={} 而不是 tab.tabname={}

tab.str 语法将 . 后面的位视为字符串键而不是变量。

另外不要使用 table 作为表名。你会覆盖默认的 table 库。

另外在 createtable(foo, "first table") 中,除非 foo 变量已经存在,否则它等同于 createtable(nil, "first table")。你的意思是 createtable("foo", "first table") 吗?

2015-02-17 02:13:57