Menu
Coddy logo textTech

Deklarowanie słowników

Część sekcji Logika i przepływ programu ścieżki Swift w Coddy. Lekcja 12 z 56.

Słownik to nieuporządkowany zbiór par klucz/wartość. Typ klucza i typ wartości są ustalane podczas jego tworzenia.

var prices: [String: Int] = [
    "apple": 1,
    "bread": 3,
    "milk":  4
]
print(prices.count)            // 3
print(prices.isEmpty)          // false

Adnotację typu [String: Int] można odczytać jako „klucze są typu String, wartości są typu Int”. Swift zwykle potrafi wywnioskować typ na podstawie literału, ale zapisanie go sprawia, że puste inicjalizatory są jednoznaczne:

var counts: [String: Int] = [:]
// w przeciwieństwie do pustej tablicy, która również wymagałaby określenia typu

Odczytanie istniejącego klucza zwraca wartość. Odczytanie nieistniejącego klucza zwraca nil; ta część zostanie omówiona w następnej lekcji.

challenge icon

Wyzwanie

Łatwy

Wczytaj trzy wiersze danych wejściowych: imię, kraj i wiek jako liczbę całkowitą. Zbuduj jeden słownik o nazwie person z kluczami typu String i odczytanymi wartościami (wiek pozostaje typu Int, więc potrzebny będzie heterogeniczny typ wartości — zobacz podpowiedź).

Wypisz trzy wiersze:

  1. Liczbę wpisów w słowniku
  2. name=<value> przy użyciu dostępu przez indeksator
  3. country=<value> przy użyciu dostępu przez indeksator

Użyj postaci możliwej do wypisania: gdy odczytujesz wartość słownika jako Any, przed wypisaniem wymuś jej rozpakowanie.

Dla danych wejściowych Alice / UK / 30 wynikiem jest:

3
name=Alice
country=UK

Spróbuj swoich sił

let name = readLine()!
let country = readLine()!
let age = Int(readLine()!)!

// TODO: utwórz [String: Any] o nazwie person, wypisz count, name, country
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Edytor online Swift