0Pricing
Swift Academy · Lekcja

Podstawy closures i przechwytywania

Poznajcie składnię closures, skrócone argumenty, trailing closure, listy przechwytywania oraz różnice między closures escaping i non-escaping.

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

Wprowadzenie

Ta lekcja wprowadza domknięcia: samodzielne bloki kodu, które można przekazywać dalej. Omawia składnię, skrócone argumenty, domknięcie końcowe, listy przechwytywania oraz domknięcia escapujące i nieescapujące.

Składnia domknięć

Domknięcia przypominają lekkie funkcje. Składnia: { (params) -> Return in ... }.

let greet = { (name: String) -> String in
    return "Hello, \\(name)"
}
print(greet("Ada"))

Skrócone argumenty

Swift udostępnia skrócone argumenty, takie jak $0 i $1, aby uprościć domknięcia.

let doubled = [1,2,3].map { $0 * 2 }
print(doubled)

Domknięcie końcowe

Jeśli domknięcie jest ostatnim argumentem, można zapisać je poza nawiasami: jest to domknięcie końcowe.

func operate(_ x: Int, _ y: Int, _ f: (Int,Int)->Int) -> Int {
    return f(x,y)
}
let sum = operate(2,3) { $0 + $1 }
print(sum)

Podstawy przechwytywania

Domknięcia przechwytują wartości z otaczającego zakresu, na przykład bieżący licznik.

func makeCounter() -> () -> Int {
    var count = 0
    return {
        count += 1
        return count
    }
}
let counter = makeCounter()
print(counter())  // 1
print(counter())  // 2

Listy przechwytywania i escaping

Proszę używać list przechwytywania, takich jak [weak self], aby uniknąć cykli retencji. Domknięcia są domyślnie nieescapujące; proszę oznaczyć je za pomocą @escaping, jeśli są przechowywane po zakończeniu wywołania.

class Greeter {
    var name = "Ada"
    lazy var greet: () -> Void = { [weak self] in
        print("Hello", self?.name ?? "?")
    }
}
let g = Greeter()
g.greet()

Pytanie o listy przechwytywania

Szybkie sprawdzenie: Jaką rolę pełni lista przechwytywania?

Podsumowanie

Podsumowanie: Domknięcia to wbudowane bloki kodu. Proszę poznać ich składnię, skrócone argumenty i domknięcie końcowe oraz kontrolować przechwytywanie za pomocą list. Domknięcia escapujące działają dłużej niż wywołanie, a nieescapujące są domyślne.

Często zadawane pytania

Czy lekcja „Podstawy closures i przechwytywania” jest bezpłatna?

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

Co nauczysz się w „Podstawy closures i przechwytywania”?

Poznajcie składnię closures, skrócone argumenty, trailing closure, listy przechwytywania oraz różnice między closures escaping i non-escaping. Ćwiczysz Swift 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ąć Swift Academy?

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

Ile czasu zajmuje lekcja „Podstawy closures i przechwytywania”?

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

Tak. Każda lekcja Swift 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. Podstawy closures i przechwytywania
  2. Listy przechwytywania — weak/unowned i przechwytywanie wartości
  3. Escaping a non-escaping, autoclosures
← Powrót do Swift Academy