我正在尝试创建一个表,由函数的第一个arg给出的名称,并为第二个arg命名的键赋值。例如
function myinsert(a, b)
a.b = 10
例如,当我给args铅笔和价格,铅笔表创建和铅笔。价格为10.或其他args,课程和年级,制作lesson.grade = 10.但是当我尝试这个它给它它不能索引本地a(数值)。我该怎么办?非常感谢
答案 0 :(得分:0)
您可以使用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()
答案 1 :(得分:0)
您可以使用_G[a]={[b]=10}
创建一个名称存储在a
中的全局表。要接收的字段名称10存储在b
。
例如:
a = "pencil"
b = "price"
_G[a]={[b]=10}
与
相同pencil.price=10
即使a
或b
不是名称,代码也能正常运行,也就是说,它们不必是字符串。