🔰 基本構文
// 型推論あり
var user: [String: String] = [
"name": "さくら",
"city": "東京"
]
// 型明示あり
var scores: Dictionary<String, Int> = [
"Math": 80,
"English": 90
]
Swiftでは、[キーの型: 値の型] で辞書を定義します。キーはユニークで、値は任意の型を指定できます。
🔎 要素の取得・更新・削除
// 値の取得
print(user["name"] ?? "不明") // さくら
// 値の更新
user["city"] = "大阪"
// 新しい要素の追加
user["age"] = "20"
// 要素の削除
user.removeValue(forKey: "name")
辞書の要素は、キーを指定して簡単に取得・更新・削除できます。値が存在しない場合は nil が返るので、?? でデフォルト値を設定できます。
🔁 ループ処理
for (key, value) in user {
print("\(key): \(value)")
}
keys や values プロパティを使ってキーや値だけを取り出すこともできます。
🔑 キーと値の取得
for key in user.keys {
print("キー: \(key)")
}
for value in user.values {
print("値: \(value)")
}
辞書のキーや値を個別に取得することも可能です。keys や values プロパティを使います。
📌 よく使う操作
count: 要素数の取得isEmpty: 空かどうかの判定contains(where:): 条件に合う要素があるか判定merge(_:uniquingKeysWith:): 辞書のマージ
これらのメソッドを使うことで、辞書の操作がより便利になります。
Dictionary🔗 辞書のマージ
// 辞書のマージ
let a = ["A": 1, "B": 2]
let b = ["B": 3, "C": 4]
let merged = a.merging(b) { (_, new) in new }
print(merged) // ["A": 1, "B": 3, "C": 4]
辞書同士をマージする際、キーが重複した場合の値の扱いを指定できます。上記の例では、重複したキーは新しい値で上書きされます。
Dictionary🧠 Dictionaryの使いどころ
- ユーザーデータや設定値の管理
- APIレスポンスのパース(JSON)
- 検索効率が高いキー → 値のマッピング
- カウント、分類処理(値を Int にしてカウント)