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対応

詳細! Swift iPhoneアプリ開発 入門ノート Swift 1.1+Xcode 6.1+iOS 8.1対応