“!! в Котлине: раскрываем силу восклицательных знаков”
Привет, любители Kotlin! Сегодня мы погружаемся в мир восклицательных знаков в Котлине. Если вы когда-нибудь сталкивались с этими двойными восклицательными знаками в коде Kotlin (обычно записываемыми как «!!»), вам может быть интересно, что они делают и почему используются. Ну, вы в правильном месте! В этой статье блога мы рассмотрим различные методы и варианты использования “!!” в Kotlin и как их можно использовать для написания лаконичного и выразительного кода. Итак, начнем!
- Оператор утверждения Not-Null (!!)
Наиболее распространенное использование “!!” в Котлине — это ненулевой оператор утверждения. Он используется для подтверждения того, что значение не равно нулю, и выдает исключение NullPointerException, если значение равно нулю. Это особенно полезно, когда вы уверены, что переменная, допускающая значение NULL, никогда не будет иметь значение NULL в определенном месте вашего кода. Например:
val name: String? = "John Doe"
val nonNullName: String = name!! // Throws NullPointerException if name is null
println(nonNullName) // Prints "John Doe"
- Безопасные вызовы (?)
Хотя оператор утверждения ненулевого значения является мощным, его неправильное использование может быть рискованным. Чтобы избежать исключений NullPointerException, Kotlin предоставляет оператор безопасного вызова (?), который проверяет наличие значений NULL перед доступом к свойству или вызову метода. Это безопаснее, чем “!!” и может использоваться следующим образом:
val name: String? = null
val length: Int? = name?.length // Returns null since name is null
println(length) // Prints null
- Оператор Элвиса (?:)
Оператор Элвиса — еще один удобный инструмент в Kotlin, который сочетает в себе значения нулевой безопасности и значения по умолчанию. Он записывается как «?:» и возвращает левую часть, если она не равна нулю, или правую часть, если левая часть равна нулю. Вот как это работает:
val name: String? = null
val displayName: String = name ?: "Guest" // Assigns "Guest" to displayName if name is null
println(displayName) // Prints "Guest"
- Обработка исключений с помощью “!!”
Иногда вам может потребоваться явно вызвать исключение, если значение равно нулю. В таких случаях, “!!” может использоваться для создания настраиваемого сообщения об исключении. Вот пример:
val result: String? = null
val length: Int = result?.length ?: throw IllegalArgumentException("Result cannot be null!")
Используя эти методы, вы можете улучшить читаемость и удобство обслуживания вашего кода Kotlin, обеспечивая при этом нулевую безопасность.
Подводя итог, можно сказать, что различные методы, включающие “!!” в Котлине — это оператор утверждения ненулевого значения, безопасные вызовы, оператор Элвиса и обработка исключений. Эти методы позволяют кратко и выразительно обрабатывать возможность обнуления, делая ваш код менее подверженным исключениям NullPointerExceptions.
Удачного программирования на Kotlin и восклицательных знаках!