已经放了 } 但错误仍然说 } 是预期的?
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
更好的错误消息。
我从教程中获取了这个,当我尝试运行它时,出现了一个令人困惑的错误
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
更好的错误消息。