Swift 辞書データ(Dictionary)で要素をfor文で回して全部見る
Swiftのdictionaryは、JavaでいうMapのようなものです。
データにキーとなる名前をつけて、キーで指定して読み書きを行います。
データを取り出すときは、名前(キー)を使って取り出します。
サンプルを見てみます。
//空の辞書データを作る var emptyDic = Dictionary<String,String>() //辞書データを作る var dictionary = ["takashi":1, "yoshida":7, "sasaki":10] //辞書データの個数を調べる var count = dictionary.count //3 //辞書データの要素を取り出す var takashi = dictionary["takashi"] //1 var yoshida = dictionary["yoshida"] //7
Dictionaryはキーに対応する値が見つからない場合は、nilを返します。
辞書データで値が見つからなかった場合をif文でチェックする構文は以下のとおりです。
//辞書データを作る var dictionary = ["takashi":1, "yoshida":7, "sasaki":10] //value is 7 if let val = dictionary["yoshida"] { println("value is \(val)") } else { println("value not found") } //value not found if let val = dictionary["sawada"] { println("value is \(val)") } else { println("value not found") }
ちなみに、一時的な定数に値を入れてnilチェックをするやり方は定番のやり方となっています。
var answer:Int = 0 var calcValue:Int? = nil if let tmp = calcValue { answer = calcValue! } else { answer = -1 //nilなら-1が入る } if (answer == -1) { print("answer is nil") } else { print("anser is \(answer)") }
辞書データの要素を全部見るfor文の作り方は以下のとおりです。
//辞書データを作る var dictionary = ["takashi":1, "yoshida":7, "sasaki":10] for (key, value) in dictionary { println("dictionary key is \(key), value is \(value)") }
出力結果は以下のようになります。
dictionary key is yoshida, value is 7 dictionary key is sasaki, value is 10 dictionary key is takashi, value is 1
辞書データーに要素を追加するには以下のように書きます。
var dictionary = ["yamada":"taro", "satou":"takeru", "yoshida":"kana"] //要素追加 dictionary["maeda"] = "atsuko" //要素削除 dictionary.removeValueForKey("yamada") for (key,val) in dictionary { println("dictionary key is \(key), value is \(val)") }
結果は以下のとおり。
dictionary key is yoshida, value is kana dictionary key is satou, value is takeru dictionary key is maeda, value is atsuko
詳細! Swift iPhoneアプリ開発 入門ノート Swift 1.1+Xcode 6.1+iOS 8.1対応
- 作者: 大重美幸
- 出版社/メーカー: ソーテック社
- 発売日: 2014/12/13
- メディア: 単行本
- この商品を含むブログ (2件) を見る