Объяснение заключается в ваших скобках: ваше первое выражение оценивается как:
a - (b - 1) = a - b + 1
, а ваше второе выражение оценивается как:
a - b - 1
Таким образом, вы видите разницу в 2 *.*
Этот расчет совершенно не связан с Lua :
Приоритет оператора в Lua работает так же, как и в математике.[...] Круглые скобки могут использоваться для произвольного изменения порядка, в котором должны выполняться операции.
Подробнее о знаке минус перед скобками можно найти здесь .