tgoop.com/kotlin_lib/571
Create:
Last Update:
Last Update:
Секреты Kotlin: 7 мощных фич, которые ежедневно используют топ-1% разработчиков
🔹1. run
для безопасной работы с null
Когда тебе нужно выполнить несколько операций с переменной, которая может быть null
, вместо длинного if
лучше использовать run
:
val user: User? = getUser()
user?.run {
println(name)
println(email)
}
🔹2.
takeIf
и takeUnless
Эти функции позволяют элегантно фильтровать значения:
val input = readLine()
val number = input?.toIntOrNull()?.takeIf { it > 0 }
// number будет null, если условие не выполнено
🔹3. Расширения для sealed классов и enum
Расширения можно использовать, чтобы "добавить" поведение к sealed классам или enum'ам:
sealed class Result
object Success : Result()
object Error : Result()
fun Result.log() = when (this) {
Success -> println("Успех")
Error -> println("Ошибка")
}
🔹4. Smart cast с кастомными проверками
Можно создавать собственные методы-проверки с smart cast внутри:
fun Any.isString(): Boolean = this is String
val value: Any = "Hello"
if (value.isString()) {
println((value as String).length) // не очень
}
Лучше использовать:
if (value is String) {
println(value.length) // безопаснее
}
🔹5.
Nothing
как маркер "никогда не возвращается"Тип
Nothing
указывает, что функция либо кидает исключение, либо бесконечна:
fun fail(message: String): Nothing {
throw IllegalArgumentException(message)
}
🔹6. Рефлексия через
::class
В Kotlin можно получить ссылку на класс:
fun <T : Any> printClassName(value: T) {
println(value::class.simpleName)
}
🔹7. Деструктуризация для data классов и пар
Kotlin позволяет удобно "распаковывать" объекты:
data class User(val name: String, val email: String)
val user = User("Oleg", "[email protected]")
val (name, email) = user
Эти фичи не просто украшения синтаксиса — они помогают писать чище, безопаснее и выразительнее. Изучи их и попробуй внедрить в свою повседневную разработку.
https://proandroiddev.com/kotlin-secrets-7-powerful-features-the-top-1-of-developers-use-daily-161e16e2464d
✍️ @kotlin_lib
BY Kotlin

Share with your friend now:
tgoop.com/kotlin_lib/571