我有一个 Lua 脚本,它接收字符串中的函数调用。我需要执行该调用并将输出作为变量中的字符串检索,以便稍后将其发送到某个地方。
例如,我将收到字符串"json.encode('{1:1, 2:3, 5:8}')"
。我想执行它并获取一个具有该值的变量ret = json.encode('{1:1, 2:3, 5:8}')
.
我尝试过以多种不同的方式使用 loadstring,包括我的一种方式在文档中找到,但我无法让它按我想要的方式工作:
> s = "json.encode('{1:1, 2:3, 5:8}')"
> ret = assert(loadstring(s))()
> print(ret)
nil
我知道该字符串正在执行,因为如果我设置s = print(json.encode('{1:1, 2:3, 5:8}'))
我看到了输出。我只是不知道如何获取变量的输出。
Thanks!
我只是找到了一种方法来做我想做的事,但我仍然想知道你们是否能找到任何缺陷/更好的方法来做到这一点,因为我对 Lua 很陌生:
> s = "json.encode('{1:1, 2:3, 5:8}')"
> s2 = "return("..s..")"
> ret = assert(loadstring(s2))()
> print(ret)
"{1:1, 2:3, 5:8}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)