Lua - '结束'预期(关闭<eof>附近的'功能'),不要错过'结束'

时间:2016-09-13 18:53:48

标签: lua

我收到一条错误消息,说“结束”丢失了,但是我看了整个代码而没看到它。

local Grid = {}
Grid.__index = Grid
function Grid.new(w, h) do
    t = {}
    setmetatable(t,Grid)
    for i=1,w do
        t[i] = {}
        for j=1,h do
            t[i][j] = {i, j, nil}
        end
    end
    return t
end
Grid.__call = Grid.new
return Grid

这是错误:

lua: grid.lua:15: 'end' expected (to close 'function' at line 3) near <eof>

1 个答案:

答案 0 :(得分:5)

do放在function行。您有endfunction匹配,但没有匹配(不必要的)do。 (实际上,编译器认为enddo匹配,然后在没有看到end函数时抱怨。)

函数体的语法大致是

  

function name ( params opt block end

(这是过于简单的,请参阅the Lua reference了解详情。)

不需要do。如果它在那里,它不是函数体语法的一部分,必须与相应的end匹配。