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を足す