代码之家  ›  专栏  ›  技术社区  ›  gavr

Lua以字符串形式返回执行结果

  •  3
  • gavr  · 技术社区  · 7 年前

    > s2="print (5+5)"
    > s2
    print (5+5)
    > loadstring(s2)
    function: 0x55834153f080
    > func = loadstring(s2)
    > func()
    10
    

    尝试了很多事情,但我没有成功,也就是说,我需要的是一个包含10的字符串类型的变量。所以我可以这么做vm.to_字符串Vala的(-1)并获得“10”

    1 回复  |  直到 7 年前
        1
  •  2
  •   Nifim    7 年前

    tostring .

    我还想补充一下您可能想要使用 dostring 不 loadstring

    load 函数在lua中的意思是编译和 不运行 loadfile , 加载字符串 )

    A do 函数将编译并运行内容( dofile 剂量管柱

    详情请参见: Lua: 8 – Compilation, Execution, and Errors

    与dofile一样,loadfile也从文件加载Lua块,但它不运行该块。相反,它只编译块并将编译后的块作为函数返回。

    加载文件 但这页是 加载字符串 .


    如果 剂量管柱

    function dostring(s)
        return assert(loadstring(s))()
    end
    

    加载字符串 变成