Что такое унарный оператор

Ответ

Унарный оператор — это оператор, который применяется к одному операнду. В Kotlin/Java есть несколько унарных операторов:

  1. Инкремент (++) и декремент (--):
var x = 5
x++ // постфиксный инкремент
++x // префиксный инкремент
  1. Унарный минус (-) и плюс (+):
val a = 10
val b = -a // -10
  1. Логическое отрицание (!):
val flag = true
val inverted = !flag // false
  1. Оператор not() для битовых операций (в Kotlin):
val bits = 0b1010
val invertedBits = bits.inv() // инвертирует биты

Унарные операторы могут быть префиксными (ставятся перед операндом) или постфиксными (после операнда), что влияет на порядок вычислений.

Ответ 18+ 🔞

Слушай, вот объясняю про унарные операторы, а сам думаю — ёпта, как же это просто, если не забивать голову ерундой. Это как в жизни: один чувак, один оператор, и всё — никаких толп вокруг.

Вот, например, инкремент (++) и декремент (--). Представь, у тебя есть переменная x = 5. Если написать x++ — это постфиксный инкремент, то есть сначала используем значение, а потом уже прибавляем. А если ++x — это префиксный, тут сразу прибавляем, а потом используем. Разница, конечно, есть, но если не вникать — да похуй, работает и ладно.

Дальше — унарный минус (-) и плюс (+). Ну, тут вообще просто: взял число, дал ему минус — получил противоположное. val a = 10, val b = -a — и вот тебе -10. Ничего сложного, блядь.

Логическое отрицание (!) — это вообще магия. Флаг true? Поставил ! — стал false. Как будто говоришь: «Нет, блядь, я так не думаю!».

А в Kotlin ещё есть not() для битовых операций. Типа, взял число 0b1010, вызвал inv() — и все биты перевернулись. Выглядит страшно, но на деле — обычная инверсия, ничего сверхъестественного.

И главное — эти операторы бывают префиксные (перед операндом) и постфиксные (после). От этого зависит порядок вычислений, но если не париться — всё равно работает. Просто запомни: один операнд, один оператор — и никаких ебушки-воробушки.