Menu
Coddy logo textTech

Sözlükleri Güncelleme

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

Bir sözlüğe, ondan okuduğunuz yöntemle aynı şekilde yazarsınız: indis (subscript) kullanarak.

var prices: [String: Int] = ["apple": 1]
prices["bread"] = 3                // anahtarı ekler
prices["apple"] = 2                // mevcut bir anahtarı günceller
prices["apple"] = nil              // anahtarı kaldırır

İki adlandırılmış yöntem aynı şeyi daha açık bir şekilde yapar:

prices.updateValue(5, forKey: "milk") // eski değeri veya nil döndürür
prices.removeValue(forKey: "bread")  // kaldırılan değeri veya nil döndürür

Adlandırılan metotlar, anahtarın zaten var olup olmadığını bilmeniz gerektiğinde yararlı olan önceki değeri döndürür.

Önceki dersteki varsayılan indis (default-subscript) deseni mutasyonla mükemmel bir şekilde zincirlenir; bir if yazmadan bu şekilde bir sayaç oluşturursunuz:

var counts: [String: Int] = [:]
for letter in ["a", "b", "a"] {
    counts[letter, default: 0] += 1
}
// counts == ["a": 2, "b": 1]
challenge icon

Görev

Orta

Tek bir giriş satırı okuyun: başlangıçtaki bir sözlük üzerinde gerçekleştirilecek işlemlerin virgülle ayrılmış bir listesi. Her işlem şunlardan biridir:

  • set:<key>:<value> ekle veya güncelle (değer bir tam sayıdır)
  • add:<key>:<value> değeri mevcut olana ekle (varsayılan alt simge -default-subscript- desenini kullanın)
  • del:<key> anahtarı kaldır

Başlangıçta boş olan bir [String: Int] yapısına her işlemi sırasıyla uyguladıktan sonra, anahtarları alfabetik sırayla, her satıra bir tane gelecek şekilde, <key>=<value> formatında yazdırın.

set:a:5,add:a:3,set:b:1,del:b,add:c:2 girişi için çıktı şöyledir:

a=8
c=2

Kendin dene

let ops = readLine()!.components(separatedBy: ",")
var dict: [String: Int] = [:]

// YAPILACAK: her bir işlemi ayrıştırın ve set/add/del uygulayın; sıralanmış anahtarları değerleriyle birlikte 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

Kendi başına pratik yap: Swift playground