我的问题:我有一个使用表作为变量的函数,但函数的变量是从解析的文本文件加载的,因此,该表被读作字符串。为了更清楚,我有这个:
"{x = 1, y = 2, z = 3}"
我需要将其转换为:
{x = 1, y = 2, z = 3}
我尝试了字符串sub
,没有成功。我可能会尝试修改文本文件以包含3个字段(每个字段都有一个表变量)来获取我的结果,但这意味着对文本文件结构和构建该文件的函数进行了重大修改...如果我可以使用那个"发短信的表"作为一张桌子,我已经完成了。
答案 0 :(得分:2)
您可以将字符串加载到函数中,然后像这样运行它:
local str = "{x = 1, y = 2, z = 3}"
local f = assert(load("return " .. str))
local t = f()
在Lua 5.1中,使用loadstring
代替load
。