功能给出奇怪的错误?

时间:2017-06-09 07:31:41

标签: function lua

    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]: ?

有谁知道为什么?谢谢!

1 个答案:

答案 0 :(得分:3)

假设您在lua REPL中运行此代码,则需要将func1定义为全局而不是本地,因为本地上下文特定于REPL中的每一行执行,并且不可用于下一行。< / p>

尝试:

function returnNumPlus1(num)
    return num + 1
end

print(returnNumPlus1(0))

print(returnNumPlus1(9000))

func1 = returnNumPlus1
print(func1(11))