0Pricing
Kotlin Academy · Lekcja

Wybór właściwej funkcji

Kiedy używać każdej z nich

Wybór właściwej funkcji to bezpłatna lekcja Kotlin Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Kotlin Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Wybór funkcji zakresowej

Przy pięciu dostępnych funkcjach zakresowych wybór właściwej sprowadza się do dwóch pytań:

  • Jak odwołujemy się do obiektu: za pomocą this czy it?
  • Co jest zwracane: wynik lambdy czy obiekt?

Tabela decyzyjna

Pełny obraz wygląda następująco:

  • let używa it i zwraca wynik lambdy.
  • run używa this i zwraca wynik lambdy.
  • with używa this (argumentu) i zwraca wynik lambdy.
  • apply używa this i zwraca obiekt.
  • also używa it i zwraca obiekt.

Używaj let dla bezpieczeństwa wartości null

Gdy masz wartość dopuszczającą null i chcesz działać na niej tylko wtedy, gdy jest obecna, użyj let z bezpiecznym wywołaniem.

fun main() {
    val name: String? = "Ada"
    name?.let { println("Hello $it") }
}

Używaj run dla this i wyniku

Gdy chcesz uzyskiwać dostęp do składowych za pomocą this i obliczyć wynik, użyj run.

fun main() {
    val text = "scope"
    val info = text.run { "$this has length $length" }
    println(info)
}

Używaj with do grupowania

Gdy masz niepusty obiekt i chcesz wykonać na nim kilka operacji, with jest naturalnym wyborem.

fun main() {
    val list = listOf(1, 2, 3)
    with(list) {
        println(sum())
        println(size)
    }
}

Używaj apply do konfiguracji

Gdy tworzysz obiekt i musisz ustawić kilka właściwości, apply utrzymuje przejrzystość kodu i zwraca obiekt.

data class Server(var host: String = "", var port: Int = 0)

fun main() {
    val server = Server().apply {
        host = "0.0.0.0"
        port = 80
    }
    println(server)
}

Używaj also do efektów ubocznych

Gdy chcesz rejestrować, debugować lub walidować bez zmieniania obiektu, właściwym wyborem jest also z it.

fun main() {
    val nums = listOf(1, 2, 3)
        .also { println("Got ${it.size} items") }
    println(nums.sum())
}

Łączenie funkcji zakresowych

W rzeczywistym kodzie często łączy się te funkcje: konfiguruje za pomocą apply, rejestruje za pomocą also, a przekształca za pomocą let.

data class User(var name: String = "", var score: Int = 0)

fun main() {
    val label = User()
        .apply { name = "Max"; score = 90 }
        .also { println("Created $it") }
        .let { "${it.name}: ${it.score}" }
    println(label)
}

Unikanie nadmiernego użycia

Funkcje zakresowe mogą pogorszyć czytelność, jeśli są zagnieżdżane lub używane zbyt często. Jeśli zwykła zmienna i jawny kod są czytelniejsze, należy wybrać właśnie to rozwiązanie. Funkcji zakresowych należy używać do usuwania rzeczywistych powtórzeń, a nie po to, by popisywać się pomysłowością.

Pułapka zagnieżdżania

Zagnieżdżanie funkcji zakresowych sprawia, że it i this stają się niejednoznaczne. Jeśli zagnieżdżanie jest konieczne, należy zmienić nazwę parametru, aby zachować przejrzystość.

fun main() {
    val outer = "A"
    outer.let { o ->
        "B".let { i ->
            println("$o then $i")
        }
    }
}

Prosty model mentalny

Warto pamiętać: funkcje zwracające obiekt (apply, also) budują potoki, a funkcje zwracające wynik (let, run, with) przekształcają wartości. Wybór między it i this należy oprzeć na czytelności.

Szybki test

Jakiej funkcji zakresowej należy użyć, aby skonfigurować nowo utworzony obiekt i otrzymać ten obiekt z powrotem?

Podsumowanie

Mają już Państwo schemat podejmowania decyzji: należy wybierać na podstawie sposobu odwołania (this lub it) oraz zwracanej wartości (obiekt lub wynik). let i run przekształcają, with grupuje, apply konfiguruje, a also dodaje efekty uboczne. Należy używać tych funkcji do ograniczania zbędnego kodu, a nie do jego komplikowania.

Często zadawane pytania

Czy lekcja „Wybór właściwej funkcji” jest bezpłatna?

Tak — pełny tekst „Wybór właściwej funkcji” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Kotlin Academy, przejdź na CoddyKit PRO. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Wybór właściwej funkcji”?

Kiedy używać każdej z nich Ćwiczysz Kotlin Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Kotlin Academy?

Nie wymagamy żadnego doświadczenia. Kotlin Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Wybór właściwej funkcji”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Kotlin Academy?

Tak. Każda lekcja Kotlin Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. let i run
  2. apply i also
  3. with
  4. Wybór właściwej funkcji
← Powrót do Kotlin Academy