【Swift/SwiftUI】辞書型データの宣言と使用方法

本記事では、Swiftにおける辞書型データとはどう言った構造なのかという解説から、宣言方法やその後の利用方法についても解説していきます。

辞書データとは

辞書とは、配列などと同様に複数のインスタンスと呼ばれるデータを格納することができるコレクションの仲間です。

Swift以外の言語では連想配列と呼ばれることの多いデータ型になります。

変数に対して辞書型のデータを代入するなどの動きにより、新たにインスタンスを生成することができます。

辞書型データはキーバリューのデータ構造をとっており、1つのデータがkeyとvalueで構成される形となっています。

キーバリューはマイナンバーと氏名のような関係で、同姓同名の人が存在することは問題ありませんがマイナンバーが被ってしまったら個人を特定できなくなるように、keyが重複するとデータを特定できませんので、1つの辞書データ内にはキーが重複したデータを格納することはできません

意味を持つ複数のデータを一つの変数に入れて保持しておきたい場合に便利なデータ型で頻繁に使用する機会があります。

辞書データの宣言

まず初期値のない辞書型の変数を宣言する方法は以下の通りです。

var kamoku : [String : Int]

ただ、上記では未初期化の状態であるため、この状態で変数の値を使用しようとするとエラーとなってしまうため、空の辞書として定義するか初期値を入れておくのが安全でしょう。

//空の辞書データを代入しておく
var kamoku : [String : Int] = [:]

空の辞書やデータの入った既存の辞書に対してデータを追加するには、変数名[“キー”] = バリューの形で代入を行います。

var kamoku : [String : Int] = [:]
kamoku["体育"] = 40
//実行結果:["体育" : 40]

複数の初期値を最初に入れておくにはカンマ区切りで[]で囲んで各データを入れます。

辞書型データへの値の代入は、[key:value]という形で行います。

var kamoku = ["国語":75,"数学":100,"英語":80,"理科":90,"社会":60]

複数の値を格納する場合にも1つの辞書型データの中のキーとバリューの値は統一する必要があります。

辞書データの参照

辞書型データの値を参照・取得するには、配列でインデックス番号を指定する動きと同様に[ キー ]を指定します。

辞書型データからの戻り値はオプショナル型であるため、参照して使用するためにはアンラップを行う必要があり、存在しないキーを指定した場合にはnilが返却されます。

var kamoku = ["国語":75,"数学":100,"英語":80,"理科":90,"社会":60]
if var kokugo = kamoku["国語"] {
    print("国語の点数は\(kokugo)点です。")
}else{
    print("対象の科目がない。")
}

オプショナル型データのアンラップ方法については以下の記事で紹介していますのでぜひご覧ください。

最後に

本記事では、Swiftで辞書データと言われる配列に近いデータ型の扱い方をご紹介しました。

  • 辞書データは他の言語での連想配列と近い振る舞い
  • [key : value]の形でデータを格納でき、keyを指定してvalueを取得できる
  • 取り出した値はオプショナル型データのためアンラップが必要

他にもSwiftで開発に利用していく文字列のメソッドとプロパティの解説、頻繁に使用する配列で使用可能なプロパティやメソッドを紹介する記事も書いていますのでそちらもご確認ください。