将函数分配给Lua中的全局变量

问题描述 投票:0回答:1

这是示例测试代码。

s="\\command{sample execution}"
u=string.gsub(s,"\\(%b{})",print)

由于打印是全局功能,所以效果很好。我定义了函数myprint,如下所示。

myprint = function(x,y)
  return print(x,y)
end

现在命令u=string.gsub(s,"\\(%b{})",myprint)不起作用。这是因为myprint不像打印一样是全局变量。所以我想问的基本问题是“如何在Lua中为全局变量分配功能?”

function variables lua global-variables
1个回答
0
投票

您只需要写:

global_function_1 = function (arg)
    -- body
end

或使用语法糖替代品:

function global_function_2 (arg)
    -- body
end

请确保您执行的那部分没有选择名称的局部变量。例如,以下功能的none是全局的:

local bar
local function foo (arg)
    local zee
    function arg () end
    zee = function () end
    function bar () end
end

请注意,我完全忽略了表成员。

© www.soinside.com 2019 - 2024. All rights reserved.