и посмотреть медиа
Kotlin | Вопросы собесов
и посмотреть медиа
Вопросы для Kotlin-разработчиков с ответами.
Вопросы для Kotlin-разработчиков с ответами.
AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.
Вопросы на Kotlin-собеседованиях: расширения, корутины, коллекции. С примерами кода и объяснениями для Android и backend.
🤔 Что происходит когда делаешь ==? В Kotlin оператор == используется для структурного сравнения объектов. 🚩Что делает `==` в Kotlin? Оператор == вызывает метод equals(), чтобы проверить содержимое объектов, а не их ссылки. data class User(val name: String) fun main() { val user1 = User("Alice") val user2 = User("Alice") println(user1 == user2) // true (структурное сравнение) println(user1 === user2) // false (сравнение ссылок) } 🚩Чем `==` отличается от `===`? == проверяет, равны ли данные объектов (equals()). === проверяет, ссылаются ли объекты на один и тот же участок памяти. val str1 = "Hello" val str2 = "Hello" println(str1 == str2) // true (содержимое одинаковое) println(str1 === str2) // true (Kotlin кеширует строки) val obj1 = String("Hello".toCharArray()) val obj2 = String("Hello".toCharArray()) println(obj1 == obj2) // true (содержимое одинаковое) println(obj1 === obj2) // false (разные объекты в памяти) 🚩Как работает `==` для классов? Если equals() не переопределён, то сравниваются ссылки (как ===). class Person(val name: String) fun main() { val p1 = Person("Bob") val p2 = Person("Bob") println(p1 == p2) // false (equals() не переопределён, сравниваются ссылки) } Чтобы == работал по содержимому, нужно переопределить equals() class Person(val name: String) { override fun equals(other: Any?): Boolean { return other is Person && other.name == this.name } } fun main() { val p1 = Person("Bob") val p2 = Person("Bob") println(p1 == p2) // true (equals() сравнивает содержимое) } 🚩Как `==` работает с `null`? Kotlin предотвращает NullPointerException при сравнении с null: val a: String? = null val b: String? = "Hello" println(a == b) // false (без NPE) println(a == null) // true Когда a == b, на самом деле выполняется: a?.equals(b) ?: (b === null) Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаТолько зарегистрированные пользователи могут делиться своим мнением.
Станьте первым, кто поделится своим впечатлением об этом ресурсе!