减法操作符的优先级

print(table.getn(szExtension_Locations) - (g_nNumTeleportEntries - 1));
print(table.getn(szExtension_Locations) - g_nNumTeleportEntries - 1);

输出结果:

125
123

为什么这两行代码会产生不同的结果?变量之间什么也没有发生。代码就是按照这个顺序的。即使我交换它们,它们仍然会先产生123,然后是125。

点赞
用户2129801
用户2129801

解释在括号内:

您的第一个表达式求值为:

a - (b - 1) = a - b + 1

而您的第二个表达式求值为:

a - b - 1

因此您可以看到它们之间的差异是 2。

这个计算与Lua完全无关:

操作符优先级在 Lua 中与数学中的通常情况相同。你可以使用括号来任意改变操作的执行顺序。

关于括号前负号的更多细节可在此处找到。

2018-06-25 20:09:40