我正在玩一点 Lua。
我遇到了以下具有意外行为的代码片段:
a = 3;
b = 5;
c = a-- * b++; // some computation
print(a, b, c);
Lua 运行程序没有任何错误,但没有2 6 15
按预期打印。为什么 ?
我正在玩一点 Lua。
我遇到了以下具有意外行为的代码片段:
a = 3;
b = 5;
c = a-- * b++; // some computation
print(a, b, c);
Lua 运行程序没有任何错误,但没有2 6 15
按预期打印。为什么 ?
LUA 不会用++
and递增和递减--
。 --
而是开始评论。
lua中没有and--
和and ++
。所以你必须使用a = a + 1
ora = a -1
或类似的东西
如果您想2 6 15
作为输出,请尝试以下代码:
a = 3
b = 5
c = a * b
a = a - 1
b = b + 1
print(a, b, c)
这会给
3 5 3
因为第 3 行将被评估为c = a
.
为什么?因为在 Lua 中,注释以--
. 因此,c = a-- * b++; // some computation
被评估为两个部分:
c = a
* b++; //// some computation
您的 Lua 代码中有 2 个问题:
a = 3;
b = 5;
c = a-- * b++; // some computation
print(a, b, c);
一、Lua目前不支持自增。一种方法是:
c = a - 1 * b + 1
print(a, b, c)
二,--
在 Lua 中是注释,所以 using a--
just 翻译为a
,注释为* b++; // some computation
。
三、//
在Lua中不起作用,--
用于注释。
;
此外,在每行的末尾使用它也是可选的。
或者你可以做
本地默认值 = 0 本地最大值 = 100
while default < max do default = default + 1 print(default) end
编辑:在 C# 中使用 SharpLua 在 lua 中递增/递减可以用速记方式完成,如下所示:
a+=1 --increment by some value
a-=1 --decrement by some value
此外,乘法/除法可以这样完成:
a*=2 --multiply by some value
a/=2 --divide by some value
如果将一个变量与另一个变量相加、相减、相乘或相除,则可以使用相同的方法,如下所示:
a+=b
a-=b
a/=b
a*=b
这更简单,更整洁,我认为不那么复杂,但不是每个人都会同意我的观点。
希望这可以帮助!