【Swift】辞書(Dictionary)型の操作方法!追加/削除/更新/for文

この記事からわかること
- Swiftの辞書型(Dictionary型)の使い方や操作方法
- 定義や追加、削除、更新など
- for文で中身を回して取り出すには?
- Dictionary(grouping:, by:)で配列内の同じ値をグループ化する方法
index
[open]
\ アプリをリリースしました /
辞書型(Dictionary型)とは?
Swiftの辞書型(Dictionary型)とはキーと値の2つでデータを保持するコレクション型(※)の1つです。※他には配列(Array)やSet型などがある
キーは辞書内で一意である必要があるので重複したキーを設定することはできません。また順序を保持することができないので格納された順番などではなく参照するたびに順序が入れ替わる可能性があります。
値にはさまざまなデータ型を格納することができ、重複した値も自由に格納することができます。
使い方
Swiftでは辞書型はDictionary
構造体として定義されています。キーはString
型でもlnt
型でも定義することができます。
辞書型を定義するには[キー:値]
形式で記述します。
空の辞書型を生成する
空の辞書型を定義して変数に格納する際は明示的にデータ型を定義して[データ型:データ型]
形式もしくはDictionary< データ型, データ型 >
のように記述します。
またイニシャライザを使用して以下のように記述することも可能です。
値を取得する
変数に格納した辞書型の値を取得するには変数[キー]
形式で取得することができます。キー値が文字列なら["文字列"]
となります。取得できる値はOptional
になります。これは添字で指定したキーが存在しないものを指定される可能性があるためです。存在しないキーを指定した場合はnil
が返ります。
キーを取得する
キーに指定されている値を取得するにはkeys
プロパティから保持しているkeyを要素とする配列形式で参照可能です。
値を取得する
キーと紐づいている値だけを取得するにはvalues
プロパティから保持しているkeyを要素とする配列形式で参照可能です。
値を更新する
辞書型の値を更新するには変数[キー]
で変更したい箇所を指定し値を入れ込みます。
値を追加する
新しいキーと値のペアを追加する場合も新しいキーを指定してそのまま値を入れ込みます。
updateValueメソッド
値の追加/更新はupdateValue
メソッドを使用して行うことも可能です。updateValue
メソッドを使用した場合、既存の値があれば返り値としてその値をなければnil
が返ります。
値を削除する
保持しているキーと値のペアを削除するにはnil
を格納します。
removeValueメソッド
removeValue
メソッドを使用しても削除することが可能です。その場合は引数にキー値を指定します。
for文で回す
辞書型の中身をfor文を使って取り出すことも可能です。各キーと値にはタプルを使って受け取ることで両方を参照することができます。
またkeys
プロパティまたはvalues
プロパティを使用してどちらか片方にアクセスすることもできます。
Dictionary(grouping:, by:)で配列の同じ要素をまとめて辞書型に変換する
Dictionary(grouping:, by:)
は第一引数に受け取った配列を第二引数で指定した値が同じものをグループ化した辞書型を返すメソッドです。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。