【发布时间】:2020-12-14 15:36:34
【问题描述】:
我发现 _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
打印
1
2
3
4
我也弄乱了它并实现了类型注释。
function foo(x: number, y: string): boolean
local k: string = y:rep(x)
return k == "a"
end
不会引发语法错误。
我还发现 table.find、table.create 和 math.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 被删除(如何检查 Lua 5.4 中的类型?)。
这是怎么回事?
以及为什么 Lua 5.4 删除了 += 、 continue 运算符以及为什么 _VERSION 在 Lua 5.1 中返回 Luau?
【问题讨论】:
-
你尝试这些东西的背景是什么? (其中许多东西从来都不是 Lua 的一部分,只是 Luau 的功能。)
标签: lua