0Pricing
Swift Academy · Lekcja

Domyślne subskrypty słowników

Odczytywanie wartości ze słownika z użyciem wbudowanych wartości domyślnych.

Domyślne subskrypty słowników to bezpłatna lekcja Swift 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 Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 4 lekcji w sumie.

Wyszukiwanie w słowniku zwraca wartość opcjonalną

Wyszukanie klucza za pomocą dict[key] zwraca wartość opcjonalną, ponieważ klucz może nie istnieć. Taka wartość opcjonalna wymaga obsługi.

let ages = ["Ann": 30]
let bob = ages["Bob"]
print(bob as Any)

Subskrypt z wartością domyślną

Swift udostępnia subskrypt z wartością domyślną: dict[key, default: value]. Jeśli brakuje klucza, otrzymujesz wartość domyślną zamiast nil.

let ages = ["Ann": 30]
print(ages["Bob", default: 0])
print(ages["Ann", default: 0])

Wynik nie jest opcjonalny

W przeciwieństwie do zwykłego wyszukiwania subskrypt z wartością domyślną zwraca wartość nieopcjonalną, więc można jej od razu użyć bez rozpakowywania.

let stock = ["pen": 5]
let pens: Int = stock["pen", default: 0]
print(pens + 1)

Zliczanie z wartościami domyślnymi

Subskrypt z wartością domyślną doskonale sprawdza się przy zliczaniu wystąpień. Rozpocznij od wartości 0 dla każdego klucza i zwiększaj ją w miarę przetwarzania danych.

var counts: [String: Int] = [:]
let words = ["a", "b", "a", "a", "b"]
for word in words {
    counts[word, default: 0] += 1
}
print(counts["a", default: 0])
print(counts["b", default: 0])

Dlaczego działa +=

Ponieważ dict[key, default: 0] zwraca rzeczywistą wartość nawet dla nowego klucza, można bezpiecznie modyfikować ją w miejscu za pomocą +=.

var tally: [String: Int] = [:]
tally["x", default: 0] += 5
tally["x", default: 0] += 3
print(tally["x", default: 0])

Sumowanie według grup

Możesz w jednym przebiegu gromadzić sumy dla poszczególnych kategorii, używając subskryptu z wartością domyślną.

let sales = [("apple", 3), ("pear", 2), ("apple", 4)]
var totals: [String: Int] = [:]
for (item, amount) in sales {
    totals[item, default: 0] += amount
}
print(totals["apple", default: 0])

Wartość domyślna a operator nil-coalescing

Wyrażenie dict[key, default: 0] jest równoważne dict[key] ?? 0 podczas odczytu, ale forma z subskryptem obsługuje również modyfikowanie wartości w miejscu.

let prices = ["tea": 3]
print(prices["tea"] ?? 0)
print(prices["tea", default: 0])

Dodawanie do wartości będących tablicami

Subskrypt z wartością domyślną działa również z wartościami będącymi tablicami, umożliwiając tworzenie pogrupowanych list.

var groups: [String: [Int]] = [:]
groups["even", default: []].append(2)
groups["even", default: []].append(4)
print(groups["even", default: []])

Wartości domyślne nie dodają elementów

Odczyt z wartością domyślną nie dodaje klucza do słownika. Klucz zostaje zapisany dopiero po modyfikacji, na przykład za pomocą +=.

var data: [String: Int] = [:]
_ = data["ghost", default: 0]
print(data.count)
data["real", default: 0] += 1
print(data.count)

Wybór rozsądnej wartości domyślnej

Wybierz wartość domyślną zgodną z typem wartości i wykonywaną operacją: 0 dla sum, [] dla list oraz pusty ciąg znaków dla tekstu.

var notes: [String: String] = [:]
notes["greeting", default: ""] += "Hello"
notes["greeting", default: ""] += " World"
print(notes["greeting", default: ""])

Łączenie zliczania i odczytu

Utwórz mapę częstości występowania, a następnie odczytuj ją z tą samą wartością domyślną, aby przez cały czas pracować z wartościami nieopcjonalnymi.

var freq: [Character: Int] = [:]
for ch in "banana" {
    freq[ch, default: 0] += 1
}
print(freq["a", default: 0])
print(freq["z", default: 0])

Szybkie sprawdzenie

Przetestuj subskrypt z wartością domyślną.

Podsumowanie: subskrypty słownika z wartościami domyślnymi

Używaj dict[key, default: value], aby odczytywać nieopcjonalną wartość zastępczą i modyfikować wartości w miejscu. To rozwiązanie idealnie nadaje się do zliczania, sumowania i grupowania bez ręcznego sprawdzania wartości nil.

var c: [String: Int] = [:]
for x in ["a", "a", "b"] { c[x, default: 0] += 1 }
print(c["a", default: 0])

Często zadawane pytania

Czy lekcja „Domyślne subskrypty słowników” jest bezpłatna?

Tak — pełny tekst „Domyślne subskrypty słowników” 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 4 lekcji w sumie.

Co nauczysz się w „Domyślne subskrypty słowników”?

Odczytywanie wartości ze słownika z użyciem wbudowanych wartości domyślnych. Ć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 4 z 4.

Ile czasu zajmuje lekcja „Domyślne subskrypty słowników”?

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. Operator nil-coalescing
  2. Łączenie wartości domyślnych
  3. Wartości domyślne parametrów funkcji
  4. Domyślne subskrypty słowników
← Powrót do Swift Academy