Lua 函数参数表和键值

Lua 函数参数表和键值,lua,lua-table,Lua,Lua Table,我试图创建一个表,该表的名称由函数的第一个参数给出,并为第二个参数命名的键赋值。比如说 function myinsert(a, b) a.b = 10 例如,当我给args pencil和price时,要创建的pencil table和pencil.price为10。或其他参数,lesson和grade,使lesson.grade=10。但当我尝试这一点时,它给出了它不能索引局部a(数值)的结果。我该怎么办?非常感谢您可以使用loadstring函数,它将计算字符串中的任意代码 例

我试图创建一个表,该表的名称由函数的第一个参数给出,并为第二个参数命名的键赋值。比如说

function myinsert(a, b)
    a.b = 10

例如,当我给args pencil和price时,要创建的pencil table和pencil.price为10。或其他参数,lesson和grade,使lesson.grade=10。但当我尝试这一点时,它给出了它不能索引局部a(数值)的结果。我该怎么办?非常感谢

您可以使用loadstring函数,它将计算字符串中的任意代码

例如:

function myinsert(a, b)
  f = loadstring(string.format("%s={}; %s.%s=10", a, a, b))
  f()

您可以使用
\u G[a]={[b]=10}
创建一个全局表,其名称存储在
a
中。要接收10的字段名称存储在
b

例如:

a = "pencil"
b = "price"
_G[a]={[b]=10}

pencil.price=10

即使
a
b
不是真正的名称,也可以使用该代码,也就是说,它们不必是字符串。

添加整个代码,包括调用函数的部分。值(包括表)没有名称;变量可以。您的意思是
a
指的是一个表还是
a
指的是一个字符串,该字符串命名了一个引用表的变量?另外请注意,
b
参数未被使用。尝试一个IDE,它可以帮助您理解代码正在做什么。