Lua:将REPL / loadstring字符串输出返回或存储在字符串变量中。

同样的问题已经在这里问过了

Lua:执行字符串并将命令的输出存储在变量中

但我希望函数 loadstring 可以以字符串形式返回结果,然后可以将其分配给一个字符串变量,以便以后进一步使用,它返回的是一个函数。 以下代码是一个例子:

ret = assert(loadstring(str_cmd))()

ret 是一个函数:(

如何以字符串形式获取 REPL/loadstring 输出?

点赞
用户107090
用户107090

如果 str_cmd 的所有输出都来自于对 print 的调用,则可以在加载 str_cmd 之前重新定义 print,以将所有输出保存在表中。运行完 str_cmd 后,可以使用 table.concat 中的表。

而不是重新定义 print,您可以提供一个环境来运行 str_cmd。您可能需要让该环境继承全局环境。

2015-02-03 11:16:36