[amazonjs asin=”4800711487″ locale=”JP” tmpl=”Small” title=”詳細! Swift 3 iPhoneアプリ開発 入門ノート Swift3 + Xcode 8対応”]
配列を作る
配列を使うと複数の値をひとまとめにして扱える。
書式
let 配列名 = [値1,値2,値3,…]
var 配列名 = [値1,値2,値3,…]
let strArray = ["a", "b", "c"] let intArray = [1, 2, 3] var boolArray = [true, false, true] var tupleArray = [(0,0), (100,200), (3,3)]
型を限定した配列と作る
書式
let 配列名:[値の型]
var 配列名:[値の型]
let colors:[String] = ["red", "blue", "Indigo"] let numList:[int] = [10, 20, 30] var resultList:[Bool] retultList = [true, false, true]
配列の型指定にはArray<値の型>と使用した書式もある。この書式は関数の定義等で必要となります。
書式
let 配列名:Array<値の型>
var 配列名:Array<値の型>
let colors:Array= ["red", "blue", "Indigo"] let numList:Array = [10, 20, 30] var resultList:Array retultList = [true, false, true]
配列の値の型推論
配列にも型推論は有効。
空の配列
空の配列も作成できる。
書式
[値の型]()
Array<値の値>()
var strArray = [String]() var intArray = [Int]() var doubleArray = Array<Double>() // 値の設定 strArray = ["a", "b", "c"] varArray = [1, 2, 3] doubleArray = [1.1, 2.1, 3.1]
配列が空か調べる
配列が空かどうかはisEmptyプロパティで調べることができる。配列が空ならtrue、値があればfalseが帰る。
配列の値の個数
配列の値の個数はcountプロパティで調べることができる。
// 配列が空かどうか var theArray = [1, 2, 3] theArray = [] if theArray.isEmpty { print("theArrayは空です。") } // 配列の個数を求める let aArray = [1, 2, 3, 4, 5] print(aArray.count) // 5
配列を同じ値で初期化する
書式
[値の型](repeating:値,count:個数)
let zeroList = [Double](repeating:0.0, count:10) let xList = [String](repeating:"初期値", count:5)
連続番号が入った配列を作る
レンジ演算子を使用すると、連続番号が入った配列を作成できる。
let numbers = [Int](-3...3) print(numbers) // 結果 [-3, -2, -1, 0, 1, 2, 3]
配列と配列を連結する
配列と配列は+演算子で連結できる。
let basicCourse = ["ラン", "スイム"] let fullCourse = basicCourse + ["バイク", "カヌー"] print(basicCourse) print(fullCourse) //結果 ["ラン", "スイム"] ["ラン", "スイム", "バイク", "カヌー"]
配列から値を取り出す
配列の値にアクセスする
配列の値には、配列[インデックス番号]のように位置を指定してアクセスする。配列のインデックス番号は0から始まる。
let abcArray = ["a", "b", "c", "d", "e", "f", "g", "h"] let str1 = abcArray[0] let str2 = abcArray[2] let newArray = abcArray[4...6] print(str1) print(str2) print(newArray) //結果 a c ["e", "f", "g"]
値を入れ替える
変数で定義してある配列は値を更新できる。レンジ演算子も使える。
var varArray = ["a", "b", "c", "d", "e", "f", "g", "h"] varArray[0] = "あ" varArray[2] = "えん" varArray[4...6] = ["赤", "橙","黄", "緑", "青", "藍", "紫"] print(varArray) //結果 ["あ", "b", "えん", "d", "赤", "橙","黄", "緑", "青", "藍", "紫", "h"]
多次元配列
配列の中に配列をいれることができる。配列[インデックス番号][インデックス番号]…とすることで配列の中の配列にアクセスできる。
var nestArray = [["a1", "a2", "a3"], ["b1", "b2", "b3"], ["c1", "c2", "c3"]] let theValue = nestArray[1][2] // b3の取り出し nestArray[2][0] = "Update" // 値の更新 print(theValue) print(nestArray) //結果 b3 [["a1", "a2", "a3"], ["b1", "b2", "b3"], ["Update", "c2", "c3"]]
配列から全ての値を取り出す
配列から全ての値を取り出すには、for-inループを使用できる。
let numArray = [53, 45, 67, 81, 77] var sum = 0 var max = Int.max var min = Int.min for item in numArray { sum += item // 合計 if item < min { min = item } else if item > max { max = item } } // 平均 let ave = Double(sum)/Double(numArray.count)
インデックス番号と値を取り出す
enumrated()を使用することで、for-inループを使って値と同時にインデックス番号を(index,value)のタプルに取り出すことができる。
let colorList = ["blue", "yellow", "red", "green"] for (index, value) in colorList.enumerated() { print((index, value)) } //結果 (0,"blue") (1,"yellow") (2,"red") (3,"green")
最初の値と最後の値を取り出す
配列の最初の値はfirst、最後の値はlastで取り出すことができる。
値の設定は出来ない。
配列の値をソートする
配列の値を並べ替えるにはsort()を使います。sort()は対象の配列の値を並び替えるのでvarで宣言します。
var ageArray = [18, 30, 33, 19, 43, 13] ageArray.sort() print(ageArray) //結果 [13, 18, 19, 30, 33, 43]
ソート済の配列を新規に作る
soted()は対象の配列の値は変更せずソート済の配列を新たに作成する。
let fruit = ["orange", "apple", "pineapple", "banana"] let fruitSorted = fruit.sorted()
配列の値の追加と削除
配列に値を追加・挿入する
値を追加する
配列に値を追加するにはappend()メソッドを使う。値は配列の最後に追加される。
値を挿入する
配列に値を挿入するにはinsert()メソッドを使う。値は指定された場所に挿入される。
//値を追加 var colors = ["red", "green"] colors.append("yellow") print(colors) //結果 ["red", "green", "yellow"] //値を挿入 var aList = ["a", "b", "c", "d"] aList.insert("ABC", at:2) print(aList) //結果 ["a", "b" "ABC", "c", "d"]
配列の値を削除する
指定した位置の値を削除する
remove(at:)メソッドで削除する。
最初の値を削除する
removeFirst()メソッドで削除する。
最後の値を削除する
removeLast()メソッドで削除する。
全ての値を削除する
removeAll()メソッドで削除する。または[]を設定する。
//指定した位置の値を削除する var colorArray = ["red", "blue", "green", "black", "white", "orange", "indigo"] let delColor = colorArray.remove(at: 2) print(delColor) //結果 ["red", "blue", "black", "white", "orange", "indigo"] //最初の値を削除する var colorArray = ["red", "blue", "green", "black", "white", "orange", "indigo"] let delColor = colorArray.removeFirst() print(delColor) //結果 ["blue", "green", "black", "white", "orange", "indigo"] //最後の値を削除する var colorArray = ["red", "blue", "green", "black", "white", "orange", "indigo"] let delColor = colorArray.removeLast() print(delColor) //結果 ["red", "blue", "green", "black", "white", "orange"] //全ての値を削除する var colorArray = ["red", "blue", "green", "black", "white", "orange", "indigo"] let delColor = colorArray.removeAll() print(delColor) //結果 []