【问题标题】:Function giving strange error?函数给出奇怪的错误?
【发布时间】:2017-11-11 02:56:41
【问题描述】:
    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]: ?

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

【问题讨论】:

    标签: function lua


    【解决方案1】:

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

    试试:

    function returnNumPlus1(num)
        return num + 1
    end
    
    print(returnNumPlus1(0))
    
    print(returnNumPlus1(9000))
    
    func1 = returnNumPlus1
    print(func1(11))
    

    【讨论】:

    • 或者,将整个内容放入 do ... end 块中。
    猜你喜欢
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2012-05-21
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多