Sobes.tech
Junior

Кадом функсияҳои ёрирасонро медонед ё истифода бурдаед дар таҷрибаи худ?

sobes.tech AI

Ҷавоб аз AI

  • Лямбда-изрази: Скорочують код для невеликих функцій-обробників, наприклад, кліків або зворотних викликів.

  • Extension Functions (Kotlin): Додають нові функції до існуючих класів без їх наслідування, покращуючи читабельність і зручність.

    fun String.isPalindrome(): Boolean {
        // Перевіряє, чи є рядок паліндромом
        return this == this.reversed()
    }
    
  • Inline Functions (Kotlin): Вбудовують тіло функції у місце виклику, зменшуючи накладні витрати на створення об'єкта функції, особливо корисно з лямбдами.

    inline fun measureExecutionTime(block: () -> Unit) {
        // Вимірює час виконання блоку коду
        val startTime = System.currentTimeMillis()
        block()
        val endTime = System.currentTimeMillis()
        println("Час виконання: ${endTime - startTime} ms")
    }
    
  • Data Classes (Kotlin): Автоматично генерують equals(), hashCode(), toString(), copy(), що зручно для зберігання даних.

    data class User(val name: String, val age: Int)
    
  • Sealed Classes (Kotlin): Представляють обмежену ієрархію класів, корисні для моделювання станів або подій, особливо у поєднанні з оператором when.

  • Generics: Дозволяють створювати повторно використовувані компоненти, що працюють з різними типами даних.

    public class Box<T> {
        // Узагальнений клас для зберігання будь-якого типу даних
        private T data;
    
        public void setData(T data) {
            this.data = data;
        }
    
        public T getData() {
            return data;
        }
    }
    
  • Операції з колекціями (map, filter, reduce і ін.): Функціональні методи для обробки колекцій даних.

    val numbers = listOf(1, 2, 3, 4, 5)
    val squaredEvenNumbers = numbers
        .filter { it % 2 == 0 } // Фільтрація парних
        .map { it * it }      // Піднесення до квадрату
    
  • Resource getters (Kotlin): Для отримання рядків, кольорів, розмірів і т.д. з ресурсів.

    val appName = context.getString(R.string.app_name)
    val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary)
    
  • Nullable types and safe calls (Kotlin): Зменшують кількість NullPointerException.

    val name: String? = null
    val length = name?.length ?: 0 // Безпечний виклик і оператор Елвіса