ITのこと

H4S Lab.

Swift 配列 Array

書式

var 配列名 = [値1, 値2, 値3]
var 配列名:[値の型] = [値1, 値2, 値3] // 型指定
var 配列名:Array<値の型> = [値1, 値2, 値3] // 関数の定義などで使う型指定

// 多次元配列
var 配列名 = [値A[値1, 値2, 値3], 値B[値1, 値2, 値3] ] 

空の配列

指定した型で初期化される

var strArray = [String]()

// 配列が空かチェック
if strArray.isEmpty {
    // 空の配列
} else {

}

配列の値の個数

count

var intArray = [10, 20, 30, 40]
intArray.count // 結果:4

配列を同じ値で初期化

repeatedValue

var zeroList = [Double](count:3, repeatedValue:0.0)
// 結果:[0.0, 0.0, 0.0]

配列に値を追加・挿入・削除

append
insert
removeAtIndex, removeLast, removeAll

var intArray = [10, 20, 30]

// 追加
intArray.append(40) // 結果:[10, 20, 30, 40]

// 挿入
intArray.insert(25, atIndex: 2) // 結果:[10, 20, 25, 30, 40]

// 指定した位置の値を削除
intArray.removeAtIndex(2) // 結果:[10, 20, 30, 40]

// 最後の値を削除
intArray.removeLast() // 結果:[10, 20, 30]

// 全てを削除
intArray.removeAll(keepCapacity: false) // 結果:0 elements ※引数省略はfalse

配列の値にアクセス

インデックスは0から
レンジ演算子で連続した範囲へのアクセスもできる

var intArray = [10, 20, 30]

// インデックスでアクセス
var int1 = intArray[0] // 結果:10
var newArray = intArray[0...1] // 結果 [10, 20]

// 代入
intArray[0] = 11 // 結果:[11, 20, 30]
intArray[1...2] = [22, 33] // 結果:[11, 22, 33]

// コピー(代入は参照では無く複製される)
var newArray2 = intArray // 結果:[11, 20, 30]

// 多次元配列へアクセス
var nestArray = [[10 ,20, 30], [40 ,50, 60], [70 ,80, 90]]
var int2 = nestArray[0][0] // 結果:10

// インデックス番号と値を取り出す
for (index, value) in enumerate(intArray) {
    println((index, value)) // 結果:(0, 11) (1, 20)  (2, 30)
}

// 最初の値を取り出す
intArray.first

// 最後の値を取り出す
intArray.last

配列の値をあつかう

// 配列と配列を連結
var strArray1 = ["aaa", "bbb"]
var strArray2 = strArray1 + ["ccc", "ddd"]

// 値を逆順に並べる
intArray.reverse()

// 値をソートする
intArray.sort {$0<$1} // 昇順
intArray.sort {$0>$1} // 降順

// ストリングをabc順にする
strArray.sorted {
    $0.uppercaseString < $1.uppercaseString // 大文字に変換して比較
}

// 値を抽出する
var filterArray = intArray.filter {$0 >= 30 && $0 <= 40} // 30以上40未満の値

// すべての値で演算を行う
var plusOnes = intArray.map {$0+1} // すべての値に1を足す

参考書籍

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

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