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


有谁知道为什么?谢谢!

最佳答案

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

尝试:

function returnNumPlus1(num)
    return num + 1
end

print(returnNumPlus1(0))

print(returnNumPlus1(9000))

func1 = returnNumPlus1
print(func1(11))

10-08 01:51