0Pricing
Android Academy · Lekcja

Funkcje i lambdy

Proszę definiować funkcje z parametrami i typami zwracanymi, używać argumentów domyślnych i nazwanych oraz pisać zwięzłe wyrażenia lambda.

Funkcje i lambdy to bezpłatna lekcja Android Academy na CoddyKit. To lekcja 2 z 3. 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 Android Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Android Academy zawiera 3 lekcji w sumie.

Po co funkcje?

Funkcje pozwalają napisać blok kodu raz i używać go w dowolnym miejscu.

  • Ograniczają powielanie kodu
  • Ułatwiają czytanie i testowanie kodu
  • Dzielą duże problemy na mniejsze części

W Kotlinie funkcje są elementami pierwszej klasy — można przechowywać je w zmiennych i przekazywać dalej.

Podstawowa składnia funkcji

Funkcja w Kotlinie używa słowa kluczowego fun:

fun greet(name: String): String {
    return "Hello, $name!"
}

fun main() {
    val msg = greet("Alice")
    println(msg)  // Hello, Alice!

    println(greet("Bob"))  // Hello, Bob!
}

Funkcje z pojedynczym wyrażeniem

Gdy ciało funkcji jest pojedynczym wyrażeniem, możesz użyć = i pominąć nawiasy klamrowe oraz return:

fun square(n: Int): Int = n * n

fun add(a: Int, b: Int) = a + b  // type inferred

fun main() {
    println(square(5))   // 25
    println(add(3, 7))   // 10
}

Argumenty domyślne i nazwane

Funkcje w Kotlinie obsługują domyślne wartości parametrów — nie trzeba tworzyć przeciążeń:

  • Domyślny: fun greet(name: String = "World")
  • nazwany: wywołaj funkcję za pomocą greet(name = "Alice"), aby pominąć kolejność pozycyjną

Argumenty domyślne i nazwane w działaniu

Argumenty domyślne pomagają zachować przejrzystość interfejsu API:

fun buildProfile(
    name: String,
    age: Int = 0,
    role: String = "User"
): String {
    return "$name | age=$age | $role"
}

fun main() {
    println(buildProfile("Alice"))
    println(buildProfile("Bob", age = 30))
    println(buildProfile("Carol", 25, "Admin"))
}

Czym są lambdy?

Lambda to funkcja anonimowa — funkcja bez nazwy.

  • Składnia: { params -> body }
  • Przechowywanie w zmiennej: val double = { x: Int -> x * 2 }
  • Przekazywanie do innej funkcji jako argumentu

Lambdy są powszechnie używane na Androidzie: w detektorach kliknięć, transformacjach list i korutynach.

Przykłady lambd

Przechowuj i wywołuj lambdy tak jak zwykłe funkcje:

fun main() {
    val double = { x: Int -> x * 2 }
    println(double(4))   // 8

    val add = { a: Int, b: Int -> a + b }
    println(add(3, 5))   // 8

    // Lambda with no params
    val sayHi = { println("Hi!") }
    sayHi()              // Hi!
}

Funkcje wyższego rzędu

Funkcja wyższego rzędu przyjmuje inną funkcję jako parametr albo ją zwraca.

Biblioteka standardowa Kotlina jest ich pełna: filter, map, forEach.

Składnia z lambdą na końcu: gdy ostatnim argumentem jest lambda, przenieś ją poza nawiasy.

Składnia lambdy na końcu

Przekaż lambdę jako ostatni argument poza nawiasami:

fun applyTwice(n: Int, operation: (Int) -> Int): Int {
    return operation(operation(n))
}

fun main() {
    val result = applyTwice(3) { x -> x * 2 }
    println(result)  // 12  (3 * 2 = 6, 6 * 2 = 12)

    // 'it' is the implicit single parameter
    val doubled = applyTwice(5) { it + it }
    println(doubled) // 20
}

Szybkie sprawdzenie

Spójrz na ten kod. Co zostanie wypisane?

val triple = { x: Int -> x * 3 }
println(triple(4))

Podsumowanie: funkcje i lambdy

Dowiedziałeś się:

  • fun definiuje funkcję z parametrami i typem zwracanej wartości
  • Funkcje z pojedynczym wyrażeniem używają skróconej składni z =
  • Argumenty domyślne i nazwane zastępują przeciążenia
  • Lambdy to funkcje anonimowe: { params -> body }
  • Funkcje wyższego rzędu przyjmują funkcje jako parametry

Dalej: sterowanie przebiegiem programu za pomocą warunków i pętli.

Często zadawane pytania

Czy lekcja „Funkcje i lambdy” jest bezpłatna?

Tak — pełny tekst „Funkcje i lambdy” 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 Android Academy, przejdź na CoddyKit PRO. Kurs Android Academy zawiera 3 lekcji w sumie.

Co nauczysz się w „Funkcje i lambdy”?

Proszę definiować funkcje z parametrami i typami zwracanymi, używać argumentów domyślnych i nazwanych oraz pisać zwięzłe wyrażenia lambda. Ćwiczysz Android 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ąć Android Academy?

Nie wymagamy żadnego doświadczenia. Android 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 2 z 3.

Ile czasu zajmuje lekcja „Funkcje i lambdy”?

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 Android Academy?

Tak. Każda lekcja Android 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. Zmienne i typy danych
  2. Funkcje i lambdy
  3. Przepływ sterowania
← Powrót do Android Academy