Menu
Coddy logo textTech

Sözlük Tanımlama

Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 12 / 56.

Sözlük, anahtar/değer çiftlerinden oluşan sırasız bir koleksiyondur. Sözlüğü oluşturduğunuzda hem anahtar türü hem de değer türü sabittir.

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

[String: Int] tür belir açıklaması, "anahtarlar String, değerler Int" şeklinde okunur. Swift bunu genellikle sabit değerden (literal) çıkarabilir, ancak açıkça yazmak boş başlatıcıları belirsizlikten kurtarır:

var counts: [String: Int] = [:]
// bir tür gerektirecek olan boş bir diziye kıyasla

Var olan bir anahtarı okumak değeri döndürür. Var olmayan bir anahtarı okumak nil döndürür, bir sonraki ders bu konuyu kapsıyor.

challenge icon

Görev

Kolay

Üç satırlık girdi okuyun: bir isim (name), bir ülke (country) ve tam sayı bir yaş (age). String anahtarlara ve okuduğunuz değerlere sahip person adında tek bir sözlük (dictionary) oluşturun (yaş Int olarak kalmalıdır, heterojen bir değer türüne ihtiyacınız olacak, ipucuna bakın).

Üç satır yazdırın:

  1. Sözlükteki girdi sayısı
  2. Alt simge (subscript) erişimi kullanarak name=<value>
  3. Alt simge (subscript) erişimi kullanarak country=<value>

Yazdırılabilir formu kullanın: sözlük değerini Any olarak okuduğunuzda, yazdırmadan önce force-unwrap yapın.

Alice / UK / 30 girdisi için çıktı şöyledir:

3
name=Alice
country=UK

Kopya kağıdı

Bir sözlük (dictionary), sabit anahtar ve değer türlerine sahip anahtar/değer çiftlerini saklar:

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

Açık tür belirtimi ile boş bir sözlük oluşturun:

var counts: [String: Int] = [:]

Heterojen değer türleri (karışık türler) için [String: Any] kullanın:

var person: [String: Any] = [
    "name": "Alice",
    "age": 30
]

Kendin dene

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

// YAPILACAK: person adında bir [String: Any] oluşturun, count, name ve country değerlerini yazdırın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler