已经放了 } 但错误仍然说 } 是预期的?

Already put } but the error still says that } is expected?

我从教程中获取了这个,当我尝试运行它时,出现了一个令人困惑的错误

local t1 = {"hi", true}
local t2 = {79, "bye", false}
local mt = {
    __concat = function(v1, v2)
        local output = {}
        for i, v in pairs(v1) do
            table.insert(output, v)
        end
        for i, v in pairs(v2) do
            table.insert(output, v)
        end
    end
    return output
    }
setmetatable(t1, mt)
setmetatable(t2, mt) --they gotta have it both as well

local t3 = t1..t2 --we merged t1 and t2 together, as you can see you can get creative
print(unpack(t3)) --t3 contains all of t1 and t2's members

The error is : File:13: '}' expected (to close '{' at line 3) near 'return'

您的问题:您在没有花时间去理解错误消息的情况下过于照字面理解错误消息。

Lua 不仅仅是在第 13 行随机期待 },它期待在 table 文字中有意义的东西并找到 return ,所以它默认告诉你它能想到的第一件事是有意义的,也就是。首先用 } 关闭 table。

真正的问题是return在函数之外,所以Lua不知道该怎么做。它需要高于 end

一般来说:当 Lua 告诉您 Expected something on line X,您应该将其解读为 I found something weird on line XI found something weird on line X并且不知道你的意思。我猜 在 table 文字 中遇到 return 更好的错误消息。