Это зависит от приоритета оператора. В первом случае операция разрешается как (-1) ushr 4
, а во втором случае - -(1 ushr 4)
.
.
Это происходит потому, что (цитируя документацию ):
Вызовы инфиксных функций имеют более низкий приоритет, чем арифметические операторы, приведение типов и оператор rangeTo. Следующие выражения эквивалентны:
1 shl 2 + 3
и 1 shl (2 + 3)
Хотя вызов метода имеет более высокий приоритет, чем -
.