Кои помощни функции знаете или сте използвали в опита си?
sobes.tech AI
Отговор от AI
-
Ламбда изрази: Скъсяват кода за малки функции за обработка, като кликвания или обратни повиквания.
-
Функции за разширение (Kotlin): Добавят нови функции към съществуващи класове без наследяване, подобрявайки четимостта и удобството.
fun String.isPalindrome(): Boolean { // Проверява дали низът е палиндром return this == this.reversed() } -
Inline функции (Kotlin): Вмъкват тялото на функцията на мястото на извикването, намалявайки разходите за създаване на обект на функция, особено с ламбда изрази.
inline fun measureExecutionTime(block: () -> Unit) { // Измерва времето за изпълнение на блока код val startTime = System.currentTimeMillis() block() val endTime = System.currentTimeMillis() println("Време за изпълнение: ${endTime - startTime} ms") } -
Данни класове (Kotlin): Автоматично генерират
equals(),hashCode(),toString(),copy(), полезни за съхранение на данни.data class User(val name: String, val age: Int) -
Затворени класове (Kotlin): Представляват ограничена йерархия на класове, полезни за моделиране на състояния или събития, особено в комбинация с
when. -
Генерични типове: Позволяват създаването на компоненти за многократна употреба, работещи с различни типове данни.
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 } // Вдига на квадрат -
Получаване на ресурси (Kotlin): За получаване на низове, цветове, размери и др. от ресурси.
val appName = context.getString(R.string.app_name) val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary) -
Nullable типове и безопасни извиквания (Kotlin): Намаляват броя на
NullPointerException.val name: String? = null val length = name?.length ?: 0 // Безопасно извикване и оператор Елвис