Swift言語: 配列・辞書

概要

Swift 2.0の配列・辞書まとめ

配列

初期化

型付き変数を宣言するパターンと、代入する値に型を宣言する方法がある。

// 代入する値に型を宣言
// 暗黙のデータ型宣言
var todos = ["ジョギングをする", "掃除をする", "予習をする"]
var array2 = [String]()
// 型付き変数を宣言
var array: [String] = [];

配列の数と値を宣言

var array3 = [String](count: 10, repeatedValue: "")

要素へのアクセス

// indexを指定して要素にアクセスする。
// 配列の値には変更なし
todos[0]

// 最後の要素を配列から取り出す。
// 配列の数は1減る
let todo = todos.popLast()

繰り返し構文(for)を使ってデータにアクセスする。

// for-in構文
for task in todos {
    print(task)
}
for index in 0..<todos.count {
    print(todos[index])
}
for var i = 0; i < todos.count; i++ {
    print(todos[i])
}
// 出力結果
ジョギングをする
掃除をする
予習をする

要素の追加

末尾に要素を追加する

todos.append("昼寝をする")
// +演算子で配列を追加できる。
todos += ["ご飯を食べる"]

要素の削除

// index指定
todos.removeAtIndex(0)


// 全削除
todos.removeAll()

コピー

var todos2 = todos
todos.append("仕事を探す")
// todo2には要素"仕事を探す"は追加されない。

多次元配列

配列に配列が入っている。

var array33 = String(count: 3, repeatedValue: [String](count: 3, repeatedValue: ""))
array33[0][0] = "a"
array33[0][1] = "b"
array33[0][2] = "c"
array33
// 配列["a, "b,", "c"]が取得出来る。
array33[0]

辞書

(キー、バリュー)の組を持つ。

初期化

var numberOfTires = ["車": 4, "バイク": 2, "船": 0]
var numberOfTires: Dictionary = [:]
var numberOfTires = Dictionary()

var numberOfTires = [String: Int]()

要素の追加

numberOfTires["車"] = 4;

要素の削除

numberOfTires["車"] = nil;

要素取得

// キー、バリューを同時に取得
for (key, value) in numberOfTires {
    print("\(key) -> \(value)")
}
// _を付けると変数にセットされない
for (_, value) in numberOfTires {
    print(value)
}

// キーを取得
for key in numberOfTires.keys {
    print(key)
}

// バリューを取得
for value in numberOfTires.values {
    print(value)
}

辞書のコピー

参照のコピーではないので、一方で修正した内容は反映されない。

var numberOfTires2 = numberOfTires;
printNumberOfTires(numberOfTires2)
numberOfTires2["車"] = 6
print(numberOfTires["車"])
// 出力結果
4