from Minority

〜log

データ構造[配列・ディクショナリ]

配列

  • 宣言
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など)を意識するぐらいかな。