创建包含操作数的数组会导致成员为空

我刚开始学习Lua,遇到了一个奇怪的问题。以下代码...

local xx = 100
vertices0 = {xx, xx}
vertices1 = {xx−5, xx-5}

结果为...

对于 vertices0,生成包含(100,100)的数组(如预期) 对于 vertices1,生成包含(nil,95)的数组。

我真的不明白为什么会出现 nil。我期待得到一个包含(95,95)的数组。

我查看了文档并尝试了谷歌这个问题。但无法解决这个问题。

顺便说一下 - 我正在使用love2d,但“常规”lua似乎会导致相同的行为。

点赞
用户7396148
用户7396148

xx−5 不是使用 -,而是使用 −。Lua 认为 − 是标识符的一部分,因此 xx−5 是一个单独的标识符,而不是所需的减法运算 xx - 5

local xx = 100
local xx−5 = 100
vertices0 = {xx, xx}
vertices1 = {xx−5, xx-5}

print(vertices1[1])

这在 5.1 版本中似乎可以运行,但在后来的版本中则不行。此外,如果您在运算符和其操作数周围放置一个空格,可以更容易地查看此类问题,这可以提高可读性。

vertices1 = {xx − 5, xx - 5}

此外,如果您使用语法高亮,则可以注意到不正确的字符没有得到适当的高亮显示。

2021-01-03 20:48:18