我发现 _VERSION 返回"Luau"而不是"Lua 5.1". 我也发现了continue,+=操作员在工作
print(_VERSION) -- Luau
value = 0
value += 1
print(value) -- Doesn't return a syntax error
for k, v in ipairs({1, 2, 3, 4}) do
if k == 1 then
continue -- This works?
end
print(v)
end
Run Code Online (Sandbox Code Playgroud)
印刷
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
我也搞乱了它并意识到类型注释是有效的。
function foo(x: number, y: string): boolean
local k: string = y:rep(x)
return k == "a"
end
Run Code Online (Sandbox Code Playgroud)
不会引发语法错误。我还发现table.find,table.create和functionmath.clamp一样在 Lua 5.4 中被删除了typeof
print(0b10)我还实现了在 Lua 5.1 中返回二进制文字2,但在 Lua 5.4 中抛出错误,同时print(1_000)在 Lua 5.1 中返回 1000,但在 Lua 5.4 中不起作用
为什么这些突然在 Lua 5.1 上可以工作了?没想到它能在 Lua 5.1 上工作当我切换到 Lua 5.4 时,_VERSION"Lua 5.4"相反返回并且continue不起作用并被typeof删除(How do I check types in Lua 5.4?)。这是怎么回事?为什么 Lua 5.4 删除了 += 、 continue 运算符以及为什么 _VERSION 在 Lua 5.1 中返回 Luau ?