函数参数表格和键值对

我试图制作一张表格,表名由函数的第一个参数给出,并将一个值分配给由第二个参数命名的键。例如

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

例如,当我提供铅笔和价格作为参数时,将创建铅笔表,并将铅笔价格设为10。或者其他参数,如课程和等级,使课程等级=10。但是当我尝试这样做时,它会提示无法索引本地a(数字值)。我该怎么办?非常感谢。

点赞
用户2604672
用户2604672

你可以使用 loadstring 函数,它将会在字符串中评估任意代码。

http://www.lua.org/pil/14.1.html

示例:

function myinsert(a, b)
  f = loadstring(string.format("%s={}; %s.%s=10", a, a, b))
  f()
2014-09-23 07:27:35
用户107090
用户107090

你可以使用_G[a]={[b]=10}来创建一个名字存储在a中的全局表。接收10的字段名存储在b中。

例如:

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

pencil.price=10

是相同的。

即使'a'或'b'实际上不是名称,也可以正常工作,也就是说,它们不必是字符串。

2014-09-23 10:36:22