データ構造[配列・ディクショナリ]
配列
- 宣言
var fruits: Array<String> var animals: [String]
- 初期化
var ftuits: ["apple","orange","banana"] var planets: Array<String>() // 空文字で初期化 var animals: [String]() // 省略形
- 型推測
var fruits ~ ["apple","banana","orange"] // String型 var primeNumbers = [1,2,3,4] // Int型
- 要素の記述
var animals = [ "dog", "cat", "mouse", // 最後のカンマもOK。 ]
※最後のカンマを許容する意味は、配列内のデータが入れ替わっても 最後のカンマを気にする必要がない
- 要素の参照と変更
var fruits = ["apple","banana","orange"] fruits[0] // appele fruits[3] = "mikan" fruits[3] // mikan // 範囲指定で参照 var ftuits = ["apple","banana","orange","grape"] ftuits[0...2] // ["apple","banana","mikan"] // 範囲指定で変更 var fruits = ["apple","banana","orange","grape"] fruits[0...2] = ["peach","pear"] // 変更 ftuits // ["peace","pear","grape"] // 範囲3つを指定して2つに修正しているため、最終的な要素集は3つ
- 要素の追加
// 末尾に要素を追加 fruits.append("cherry") // 末尾位要素を複数追加 fruits += ["lemon","papaya"] // 指定した場所に要素を挿入 fruits.insert("pineapple",atIndex: 0)
// 要素の削除 fruits.removeAtIndex(0) // 範囲を指定した削除 fruits.removeRange(0...1)
メソッド | 意味 |
---|---|
a.count | aの要素を返す。 |
a.filter{ $0 == 1 } | aの要素のうち{}内の条件式にマッチするもののみが含まれる配列を返す。無ければ要素数0の配列 |
a.first | aの最初の要素をオプショナル型で返す。無ければnil |
a.isEmpty | aに要素が無ければtrue。でなければfalse |
a.last | aの最後の要素をOptional型で返す。無ければnil |
a.removeAll() | aの要素をすべて削除する |
ディクショナリ(key:value)
- 宣言
var airports: Dictionary<String, String> var pixels: [String: [Int]] //上記の省略形
- 初期化
var airports: [String: String] = [ "NRT": "Narita", "HND": "Haneda", ]
- 型推測
// キー・バリュはString var airports = [ "NRT": "Narita", "HND": "Haneda", ] // キーはString バリュはInt型の配列 var pixels = [ "iPhone5": [640,1136], "iPhone6": [750, 1334], "iPhone6Plus": [1080, 1920], ]
- 空要素の初期化
var airports = ["NTR": "Narita", "HND": "Haneda",] airports = [:] airports // 0 key/value pairs
- 参照と変更
var airports = ["NTR": "Narita", "HND": "Haneda",] airports["NRT"] // {Some "Narita"} airports["NRT"] = "Tokyo/Narita" airports["NRT"] // {Some "Tokyo/Narita"} airports["HKT"] // nil
- 要素の追加
var airports = ["NRT": "Narita", "HND": "Haneda",] // 要素追加 airports["HKT"] = "Hakata" airports // ["NRT": "Narita", "HND": "Haneda", "HKT", "Hakata",]
- 要素の削除
var airports = ["NRT": "Narita", "HND": "Haneda",] // 要素削除 airports["NRT"] = nil airports // ["HND": "Haneda",] if let oldValue = airports.removeValueForKey("HND") { println("値 \(oldValue) を削除しました。") } else { println("キーがありませんでした") } // removeValueForKey(_:)の戻り値はOptional
メソッド | 意味 |
---|---|
a.count | aの要素を返す。 |
a.isEmpty | aに要素が無ければtrue。でなければfalse |
a.removeAll() | aの要素をすべて削除する |
- まとめ とりわけ新しい概念はなし。 メソッドの戻り値(Optionalなど)を意識するぐらいかな。