如何解决_VERSION为什么返回“ Luau”而不是“ Lua 5.1”,为什么+ =运算符突然起作用?
我发现_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
不会引发语法错误。
我还发现在Lua 5.4和table.find
函数中删除了table.create
,math.clamp
和typeof
我还意识到二进制文字print(0b10)
在Lua 5.1中返回2
,但在Lua 5.4中引发错误,而print(1_000)
在Lua 5.1中返回1000,但在Lua 5.1中不起作用Lua 5.4
为什么这些突然在Lua 5.1上起作用?没想到它可以工作Lua 5.1
当我切换到Lua 5.4时,_VERSION相反返回"Lua 5.4"
,并且continue
不起作用,并且typeof
被删除了(如何检查Lua 5.4中的类型?)。
这是怎么回事?
为什么Lua 5.4删除+ =,继续运算符,为什么_VERSION在Lua 5.1中返回Luau?
解决方法
简单为:不是 Lua 5.1。
它是Luau,这是一种从Lua 5.1派生并向后兼容的语言。这就是为什么您通常的5.1代码可以工作以及为什么可以使用其他时髦的东西的原因。 Roblox目前已关闭源代码,并且正在开发中。
对于Lua 5.4,请参阅其Reference Manual以了解对它的期望。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。