问题描述
local xx = 100
vertices0 = {xx,xx}
vertices1 = {xx−5,xx-5}
结果...
一个包含 (100,100) 的数组,用于顶点 0(如预期)但是 在包含 (nil,95) for vertices1 的数组中。
我真的不明白是什么导致 nil 出现。我希望得到一个 (95,95) 的数组。
顺便说一句 - 我正在使用 love2d,但“常规”lua 似乎会导致相同的行为。
解决方法
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,但不适用于更高版本的 lua。此外,如果您在运算符及其操作数周围放置一个空格,则可以更容易地看到这样的问题,这对于可读性来说确实是一个不错的样式选择。
vertices1 = {xx − 5,xx - 5}
另外,如果你有语法高亮,你会注意到不正确的字符没有被正确高亮。