Menu
CoddyTech

Pencarian Opsional

Termasuk bagian Logika dan Alur dalam perjalanan Swift di Coddy. Pelajaran 13 dari 56.

Subskrip dictionary selalu menghasilkan Optional: nilai ketika key ada, nil ketika key tidak ada. Swift mengharuskan kamu menangani kedua kasus.

let prices: [String: Int] = ["apple": 1, "bread": 3]
let p = prices["apple"]
print(p)                          // Optional(1)

Tiga cara idiomatis untuk menangani nilai opsional. Pilih cara yang sesuai dengan situasinya.

1. if let: tangani kedua cabang secara eksplisit:

if let p = prices["apple"] {
    print("apple costs \(p)")
} else {
    print("unknown")
}

2. penggabungan nil ??: sediakan nilai cadangan secara langsung:

let p = prices["olive"] ?? 0    // 0

3. subskrip dengan nilai default: hasilnya sama, tetapi nilai default juga tetap ada jika kamu menulis kembali ke key tersebut:

var counts = ["a": 2]
counts["b", default: 0] += 1   // counts == ["a": 2, "b": 1]
challenge icon

Tantangan

Mudah

Diberikan dictionary prices. Baca satu baris input: daftar item yang dipisahkan koma dan ingin dibeli pengguna.

Untuk setiap item, sesuai urutan input, cari item tersebut di prices. Cetak satu baris untuk setiap item:

  • <item> @ <price> jika item ada di dictionary
  • <item> not sold jika tidak

Setelah mencantumkan semua item, cetak satu baris terakhir: Total: <sum>. Anggap item yang tidak ada berharga 0 dengan menggunakan operator nil-coalescing.

Untuk input apple,bread,olive,milk, output-nya adalah:

apple @ 1
bread @ 3
olive not sold
milk @ 4
Total: 8

Coba sendiri

let prices: [String: Int] = ["apple": 1, "bread": 3, "milk": 4]
let items = readLine()!.components(separatedBy: ",")

// TODO: cari harga tiap item; cetak '@ price' atau 'not sold'; jumlahkan dengan ?? 0
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Playground Swift