函数出现奇怪的错误?

    function returnNumPlus1(num)
    return num + 1
end

print(returnNumPlus1(0))

print(returnNumPlus1(9000))

local func1 = returnNumPlus1
print(func1(11))

我一直在测试它,想让它没有错误,但我总是得到和下面一样的错误。我对 Lua 还比较新,所以我希望我能让它工作:D 并给出以下错误:

stdin:1: attempt to call global 'func1' (a nil value)
stack traceback
        stdin:1: in main chunk
        [C]: ?

有谁知道为什么吗?谢谢!

点赞
用户553209
用户553209

假设你正在运行这段 Lua 代码,并且在 REPL 中执行,你需要将 func1 定义为全局变量,而不是局部变量。因为在 REPL 中,局部环境是针对每行代码执行而言的,不会为下一行代码保留。

尝试以下代码:

function returnNumPlus1(num)
    return num + 1
end

print(returnNumPlus1(0))

print(returnNumPlus1(9000))

func1 = returnNumPlus1
print(func1(11))
2017-06-09 07:35:59