Swift の Dictionary(辞書)- 作成・値の変更・キーと値のペアの追加
ここでは Swift の Dictionary(辞書)について基本的なことと、値の変更方法や、キーと値のペアを追加する方法についてご説明します。
Swift の Dictionary(辞書)の基本
Swift の Dictionary(辞書)は、順序をもたない、キー(Key) と値(Value) が対になった複数のデータの集まりです。
キーを指定して値を追加・削除したり、値を取得したりするので、辞書の中のキーは一意でなくてはならず、同じキーは複数存在できません。
Dictionary のキーはケースセンシティブで、Set の要素と同様に、Hashable な型でなくてはなりません。
Swift の String、Int、Double などの基本的なデータ型は Hashable です。
Swift で Dictionary(辞書)作るには何通りか方法があります。
例えば、キーが String 型、値が Int 型の辞書オブジェクトを作って空に初期化するには、次のどれかを使います。
var dict1:[String: Int] = [:]
var dict2 = [String: Int]()
var dict3: Dictionary<String, Int> = [:]
var dict4 = Dictionary<String, Int>()
どれでも同じ型の空の辞書を生成することができますが、Swift の公式ドキュメントでは 1 行目か 2 行目の [Key: Value] を使う方法が推奨されています。
その他の変数の定義と同様で、次のようにデータ型を指定せずに値を代入して Dictionary を定義することもできます。
var dict = ["Key1": 10, "Key2": 5, "Key3": 7, "Key4": 10]
Dictionary を変更する必要がない時は var ではなくて let で定義します。
let dict = ["Key1": 10, "Key2": 5, "Key3": 7, "Key4": 10]
辞書の値のデータ型がキーによって違う場合は Any を指定します。
var dict1:[String: Any] = [:]
値のデータ型がキーによって違う場合は、辞書オブジェクトを生成するのと同時に値を代入する時に型の省略はできません。
var student:[String : Any] = ["Name": "Suzuki", "Age": 15, "Gender": "M"]
それでは、Swift の Dictionary を使っていきましょう。
Swift の Dictionary(辞書)の値を取得する
Swift の Dictionary(辞書)のキーに対応する値を取得するには、角括弧[ ]を使ってキーを指定します。
例えば、次のような dict という名前の辞書の、Key1 というキーの値を取得するには次のようにします。
取得される値はオプショナルなので、デフォルト値として "Not Found" を指定しています。
let dict = ["Key1": "value1", "Key2": "value2", "Key3": "value3"]
print(dict["Key1"] ?? "Not Found")
実行結果です。 Key1 キーに対応する値の value1 が出力されています。
value1
Swift の Dictionary(辞書)の値を変更する
Swift の Dictionary(辞書)の値を変更するには、角括弧[ ]を使ってキーを指定し、そこに新しい値を代入します。
その時、値のデータ型が Any でない場合は、違うデータ型の値を代入しようとするとエラーになります。
例えば、Key1 というキーの値を value11 に変更したい時は次のようにします。
Dictionary を変更するので、変数の定義の箇所を let から var に変えています。
var dict = ["Key1": "value1", "Key2": "value2", "Key3": "value3"]
print(dict)
dict["Key1"] = "value11"
print(dict)
実行結果は次のようになり、Key1 の値が "value11" に変更されていますね。
["Key1": "value1", "Key2": "value2", "Key3": "value3"]
["Key1": "value11", "Key2": "value2", "Key3": "value3"]
Swift の Dictionary(辞書)にキーと値のペアを追加する
Swift の Dictionary(辞書)にキーと値のペアを追加するには、角括弧[ ]を使って新しいキーを指定して値を代入します。
空っぽの Dictionary(辞書)を定義して、キーと値のペアを三つ追加してみます。
var dict: [String: String] = [:]
print(dict)
dict["Key1"] = "value1"
print(dict)
dict["Key2"] = "value2"
print(dict)
dict["Key3"] = "value3"
print(dict)
実行結果は次のようになり、キーと値のペアが Dictionary(辞書)に追加されていっています。
[:]
["Key1": "value1"]
["Key1": "value1", "Key2": "value2"]
["Key1": "value1", "Key2": "value2", "Key3": "value3"]
以上、Swift の Dictionary(辞書)について基本的なことと、値の変更方法や、キーと値のペアを追加する方法についてご説明しました。