Ответ
Унарный оператор — это оператор, который применяется к одному операнду. В Kotlin/Java есть несколько унарных операторов:
- Инкремент (
++) и декремент (--):
var x = 5
x++ // постфиксный инкремент
++x // префиксный инкремент
- Унарный минус (
-) и плюс (+):
val a = 10
val b = -a // -10
- Логическое отрицание (
!):
val flag = true
val inverted = !flag // false
- Оператор
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() — и все биты перевернулись. Выглядит страшно, но на деле — обычная инверсия, ничего сверхъестественного.
И главное — эти операторы бывают префиксные (перед операндом) и постфиксные (после). От этого зависит порядок вычислений, но если не париться — всё равно работает. Просто запомни: один операнд, один оператор — и никаких ебушки-воробушки.