【问题标题】:Why does Lua loadstring() not work on the demo site?为什么 Lua loadstring() 在演示站点上不起作用?
【发布时间】:2018-10-29 16:15:01
【问题描述】:

我正在尝试测试 Lua 的 loadstring 函数。

这个例子取自 Lua 文档:

f = loadstring("i = i + 1")

但是,当我尝试在以下位置运行它时:

https://www.lua.org/cgi-bin/demo

我收到以下错误:

input:1: attempt to call a nil value (global 'loadstring')

【问题讨论】:

    标签: lua


    【解决方案1】:

    loadstring 在 Lua 5.1 之前的版本中不可用。您链接的演示正在运行 Lua 5.3。你可以通过运行程序print(_VERSION)来证明这一点。

    在 Lua 5.2 之后,您的代码应该使用 load,这是一个您可以运行的示例程序,它从字符串加载块:

    local f = load("return 2 + 2")
    print(f())
    

    【讨论】:

      【解决方案2】:

      它是 Lua 5.4 并且负载在那里。 看……

      tdump=[[for k,v in pairs(_G) do print(k,v) end]]
      load(tdump)()
      

      我认为由于安全原因,Lua 5.4 CGI 的功能被削减了。 看……

      tdump=[[for k,v in pairs(_G.io) do print(k,v) end]]
      load(tdump)()
      

      ...只有:write()

      【讨论】:

        猜你喜欢
        • 2014-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多