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ą
thisczyit? - Co jest zwracane: wynik lambdy czy obiekt?
Tabela decyzyjna
Pełny obraz wygląda następująco:
letużywaiti zwraca wynik lambdy.runużywathisi zwraca wynik lambdy.withużywathis(argumentu) i zwraca wynik lambdy.applyużywathisi zwraca obiekt.alsoużywaiti 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
- let i run
- apply i also
- with
- Wybór właściwej funkcji