Jakie funkcje pomocnicze znasz lub używałeś w swoim doświadczeniu?
sobes.tech AI
Odpowiedź od AI
-
Wyrażenia lambda: Skracają kod dla małych funkcji obsługi, np. kliknięć lub callbacków.
-
Funkcje rozszerzające (Kotlin): Dodają nowe funkcje do istniejących klas bez dziedziczenia, poprawiając czytelność i wygodę.
fun String.isPalindrome(): Boolean { // Sprawdza, czy ciąg jest palindromem return this == this.reversed() } -
Funkcje inline (Kotlin): Wstawiają ciało funkcji w miejsce wywołania, zmniejszając narzut związany z tworzeniem obiektu funkcji, szczególnie przy lambda.
inline fun measureExecutionTime(block: () -> Unit) { // Mierzy czas wykonania bloku kodu val startTime = System.currentTimeMillis() block() val endTime = System.currentTimeMillis() println("Czas wykonania: ${endTime - startTime} ms") } -
Klasy danych (Kotlin): Automatycznie generują
equals(),hashCode(),toString(),copy(), co jest przydatne do przechowywania danych.data class User(val name: String, val age: Int) -
Klasy sealed (Kotlin): Reprezentują ograniczoną hierarchię klas, przydatne do modelowania stanów lub zdarzeń, szczególnie w połączeniu z
when. -
Generics: Pozwalają tworzyć komponenty wielokrotnego użytku, działające z różnymi typami danych.
public class Box<T> { // Ogólna klasa do przechowywania dowolnego typu danych private T data; public void setData(T data) { this.data = data; } public T getData() { return data; } } -
Operacje na kolekcjach (map, filter, reduce itp.): Funkcyjne metody do przetwarzania kolekcji danych.
val numbers = listOf(1, 2, 3, 4, 5) val squaredEvenNumbers = numbers .filter { it % 2 == 0 } // Filtruje parzyste .map { it * it } // Podnosi do kwadratu -
Gettery zasobów (Kotlin): Do pobierania stringów, kolorów, rozmiarów itp. z zasobów.
val appName = context.getString(R.string.app_name) val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary) -
Typy nullable i bezpieczne wywołania (Kotlin): Zmniejszają liczbę
NullPointerException.val name: String? = null val length = name?.length ?: 0 // Bezpieczne wywołanie i operator Elvis