辞書

Swiftの「辞書(Dictionary)」は、キーと値のペアを格納するコレクション型です。各キーは一意でなければならず、同じキーに対して複数の値を持つことはできません。Swiftの辞書は、連想配列(associative array)やハッシュマップ(hash map)に相当します。


1. 辞書の基本構文

辞書は以下のように定義されます:

swift
var dictionaryName: [KeyType: ValueType] = [:]

swift
var capitals: [String: String] = [ "Japan": "Tokyo", "France": "Paris", "USA": "Washington, D.C." ]

この例では、国名(String)をキー、首都名(String)を値とした辞書を作成しています。


2. 値の取得と代入

値の取得

swift
let capital = capitals["Japan"] // Optional("Tokyo")

辞書に存在しないキーを指定した場合、nilが返されます。

値の代入または更新

swift
capitals["Germany"] = "Berlin" // 新しいキーと値を追加 capitals["France"] = "Lyon" // 既存のキーの値を更新

3. 値の削除

swift
capitals["USA"] = nil // キー "USA" を削除

4. 辞書の初期化(空の辞書)

swift
var emptyDict1: [String: Int] = [:] var emptyDict2 = Dictionary<String, Int>()

5. イテレーション(for-in文)

辞書の全要素を走査するには以下のようにします:

swift
for (country, capital) in capitals { print("\(country): \(capital)") }

6. プロパティとメソッド

プロパティ/メソッド 説明
count 要素数を返す
isEmpty 辞書が空であるかどうかを返す
keys 全てのキーのコレクションを返す
values 全ての値のコレクションを返す
removeValue(forKey:) 指定されたキーの値を削除し、削除された値を返す(Optional)

swift
print(capitals.count) // 要素数 print(capitals.isEmpty) // 空かどうか print(capitals.keys) // ["Japan", "France", ...] print(capitals.values) // ["Tokyo", "Lyon", ...]

7. オプショナルの扱い

辞書から値を取得するとOptional型になります。安全に値を使うにはif letguard letを使います:

swift
if let tokyo = capitals["Japan"] { print("Japan's capital is \(tokyo).") } else { print("Capital not found.") }

まとめ

  • Swiftの辞書はキーと値のペアを格納するコレクション。

  • キーは一意であり、任意の型を指定可能(Hashableに準拠している必要あり)。

  • 値の取得時にはOptionalが返るため、安全なアンラップが重要。

  • イテレーションやメソッドも豊富に用意されており、柔軟に扱える。

生成日:2025/05/04