【问题标题】:Specifying Math Environment in Lua Function在 Lua 函数中指定数学环境
【发布时间】:2020-05-02 22:02:02
【问题描述】:

以下工作。

function userdata(x)
      local _ENV = math
      return (x)
  end
  print(userdata(math.sin(2)))

但是以下不起作用。

function userdata(x)
      local _ENV = math
      return (x)
  end
  print(userdata(sin(2)))

如何避免到处输入 .math?

【问题讨论】:

    标签: function lua


    【解决方案1】:
    setmetatable(_G, {__index = math})
    
    function userdata(x)
        return (x)
    end
    
    print(userdata(sin(2)))
    print(max(3, pi))
    

    【讨论】:

    • 感谢您的帮助。是否可以仅将环境与 userdata 功能链接?这可能会影响其他功能。
    • 但是你在函数体之外调用sin。函数的环境只会影响函数内部的计算。
    • 这就是函数的目的。在调用数学环境时调用它。
    猜你喜欢
    • 1970-01-01
    • 2016-01-11
    • 2012-10-28
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多