【Swift/SwiftUI】辞書型データで使用できるプロパティ

本記事では、辞書型データに対して使用することができるプロパティのうち頻出するものをいくつか紹介していきます。

辞書型データとは

辞書型データとは他のプログラミング言語では連想配列と呼ばれるデータ型で、keyとvalueのペアでデータを保持します。

複数のkey,valueデータを保持することができ、データの取り出しを行う際にはkeyを指定することでvalueを取得することができます。

辞書型データの基礎的な宣言や取り出しについては以下の記事で紹介していますのでこちらもご確認ください。

プロパティ一覧

要素数をカウント

辞書の要素数を返却するプロパティです。

辞書型データでは、keyとvalueの組み合わせを1つの要素としてその要素数を返却します。

var kamoku : [String : Int] = [:]
kamoku.count
//実行結果:0件

kamoku = ["国語":75,"数学":100,"英語":80,"理科":90,"社会":60]
kamoku.count
//実行結果:6件

辞書が空か確認

辞書型データの要素数が0件の場合にはtrueを返却します。

var kamoku : [String : Int] = [:]
kamoku.isEmpty
//実行結果:true

辞書型データの要素数が1件以上の場合にはfalseを返却します。

var kamoku = ["国語":75,"数学":100,"英語":80,"理科":90,"社会":60]
kamoku.isEmpty
//実行結果:false

キーのコレクションを取得

辞書型データからKeyのみが格納されたコレクションを取得することができます。

var kamoku = ["国語":75,"数学":100,"英語":80,"理科":90,"社会":60]
kamoku.keys
//実行結果:["国語", "社会", "体育", "英語", "理科", "数学"]

辞書型データが空の場合には、空のコレクションを返却します。

var kamoku : [String : Int] = [:]
kamoku.keys
//実行結果:[ ]

ぱっと見は配列のように見えますが、コレクションであるためインデックスを使用して中の要素を参照することができません。そのため、ループ処理を利用することで各要素を確認することができます。

var kamoku = ["国語":75,"数学":100,"英語":80,"理科":90,"社会":60]
for subject in kamoku.keys {
    print(subject)
}

バリューのコレクションを取得

辞書型データからValueのみが格納されたコレクションを取得することができます。

var kamoku = ["国語":75,"数学":100,"英語":80,"理科":90,"社会":60]
kamoku.values
//実行結果:[75, 60, 40, 80, 90, 100]

辞書型データが空の場合には、空のコレクションを返却します。

var kamoku : [String : Int] = [:]
kamoku.values
//実行結果:[ ]

keysと同様に配列のように見えますが、コレクションであるためインデックスを使用して中の要素を参照することができません。そのため、ループ処理を利用することで各要素を確認することができます。

var kamoku = ["国語":75,"数学":100,"英語":80,"理科":90,"社会":60]
for score in kamoku.keys {
    print(score)
}

辞書内の先頭のkeyvalueを取得

firstプロパティを使用することで、辞書内の先頭のkey:valueのペアを返却します。しかし、辞書型データでは要素の順番が保証されていないため、返却される値が異なる可能性があります。そのため、順番を保証したデータが欲しい場合には適していません。

var kamoku = ["国語":75,"数学":100,"英語":80,"理科":90,"社会":60]
if var first_kamoku = kamoku.first {
    print(first_kamoku)
}
//実行結果:(key: "英語", value: 80)

要素が存在しない場合にはnilが返却されます。また、firstの戻り値はオプショナル型データであるため、中のデータを使用する際にはアンラップが必要です。

最後に

本記事では、Swiftの辞書型データで使用可能なプロパティの一覧について解説してきました。

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