Swiftのdictionaryについて調べていて、断片的な記事が多かったので、dictionaryについてざっくりとまとめてみることにしました。
環境: Swift4.2
目次
dictionaryの宣言
dictionaryはキーとバリューのセットで用いられます。
名前: “Taro”, 年齢: 21, 出身: “埼玉”
こんな感じで、キーとバリューのペアです。
空のdictionaryの宣言
1 |
var dictionaryA: [String: String] = [:] |
キーとバリューが文字列(String)のdictionaryです。
1 |
var dictionaryB: [Int: Int] = [:] |
キーとバリューが整数(Int)のdictionaryです。
1 |
var dictionaryC: [String: Int] = [:] |
キーとバリューに異なるデータ型を入れることも可能です。
値を入れてdictionaryを宣言
データ型を指定する場合。
1 |
var dictionaryD: [String: String] = ["名前" : "Taro", "出身" : "横浜"] |
キーとバリューが文字列のdictionaryに値を入れて宣言しています。
データ型を指定しない場合(型推論)
1 |
var dictionaryE = ["名前" : "Taro", "出身" : "横浜"] |
キーとバリューの文字列を指定せず、キーとバリューでdictionaryを作っています。
Swiftでは型推論という機能があって、値からデータ型を推論して勝手につくてくれます。
上のdictionaryの場合は、swiftがこれはキーとバリューが共に文字列のdictionaryだなと判断してくれます。
dictionaryの値の取得
キーを使って値を取得する
1 2 3 4 5 |
var dictionaryF = ["名前" : "Taro", "出身" : "横浜"] print(dictionaryF["名前"]) //結果: Optional("Taro") |
dictionaryの値の更新
キーを使って値を書き換える
1 2 3 4 5 6 |
var dictionaryF = ["名前" : "Taro", "出身" : "横浜"] dictionaryF["名前"] = "Ken" print(dictionaryF["名前"]) //結果: Optional("Ken") |
updateValueを使う
1 2 3 4 5 6 7 8 |
var dictionaryG = ["名前" : "Taro", "出身" : "横浜"] dictionaryG.updateValue("大分", forKey: "出身") print(dictionaryG) //結果: ["出身": "大分", "名前": "Taro"] |
updateValue(更新する値, forKey: キー名)
で更新できます。
dictionaryの値の追加
dictionaryの更新で使ったupdateValueが使えます。
1 2 3 4 5 6 |
dictionaryH.updateValue("職業", forKey: "Webデザイナー") print(dictionaryH) //結果: ["出身": "横浜", "Webデザイナー": "職業", "名前": "Taro"] |
updateValue(更新する値, forKey: キー名)は、すでにキーがあれば更新され、なければ新たに追加されます。
dictionaryの値の削除
キーを指定して削除
1 2 3 4 5 6 7 8 |
var dictionaryI = ["名前" : "Taro", "出身" : "横浜"] dictionaryH.removeValue(forKey: "名前") print(dictionaryH) //結果: ["出身": "横浜"] |
全てを削除
1 2 3 4 5 6 7 8 |
var dictionaryJ = ["名前" : "Taro", "出身" : "横浜"] dictionaryH.removeAll() print(dictionaryH) //結果: [:] |
dictionaryの要素数を取得
1 2 3 4 5 6 |
var dictionaryK = ["名前" : "Taro", "出身" : "横浜"] print(dictionaryK.count) //結果: 2 |
おわりに
以上Swiftのdictionaryについて簡単にまとめました。
間違っているところあればご指摘ください〜。
参考:
Dictionary – Swift Standard Library | Apple Developer Documentation