Swift-arrays
Swift-配列
Swift 4配列は、同じタイプの値の順序付きリストを格納するために使用されます。 Swift 4は厳密なチェックを行うため、誤って配列に間違った型を入力することはできません。
作成された配列を変数に割り当てると、変数は常に変更可能になります。つまり、項目を追加、削除、または変更することで変更できます。ただし、配列を定数に割り当てた場合、その配列は不変であり、サイズと内容は変更できません。
配列の作成
次の初期化構文を使用して、特定のタイプの空の配列を作成できます-
var someArray = [SomeType]()
これは、指定されたサイズa *の配列を作成し、値で初期化する構文です-
var someArray = [SomeType](count: NumbeOfElements, repeatedValue: InitialValue)
次のステートメントを使用して、3つの要素とゼロとしての初期値を持つ Int 型の空の配列を作成できます-
var someInts = [Int](count: 3, repeatedValue: 0)
以下は、3つの要素の配列を作成し、その配列に3つの値を割り当てるためのもう一つの例です-
var someInts:[Int] = [10, 20, 30]
配列へのアクセス
あなたは次のように配列の名前の直後に角括弧内に取得したい値のインデックスを渡す subscript 構文を使用して、配列から値を取得することができます-
var someVar = someArray[index]
ここで、 index は0から始まります。つまり、最初の要素は0のインデックスを使用してアクセスでき、2番目の要素は1のインデックスを使用してアクセスできるということです。 次の例は、配列を作成、初期化、およびアクセスする方法を示しています-
var someInts = [Int](count: 3, repeatedValue: 10)
var someVar = someInts[0]
print( "Value of first element is \(someVar)" )
print( "Value of second element is \(someInts[1])" )
print( "Value of third element is \(someInts[2])" )
上記のコードをコンパイルして実行すると、次の結果が生成されます-
Value of first element is 10
Value of second element is 10
Value of third element is 10
配列の変更
- append()*メソッドまたは追加の代入演算子(+ =)を使用して、配列の最後に新しいアイテムを追加できます。 次の例を見てください。 ここでは、最初に、空の配列を作成してから、同じ配列に新しい要素を追加します-
var someInts = [Int]()
someInts.append(20)
someInts.append(30)
someInts += [40]
var someVar = someInts[0]
print( "Value of first element is \(someVar)" )
print( "Value of second element is \(someInts[1])" )
print( "Value of third element is \(someInts[2])" )
上記のコードをコンパイルして実行すると、次の結果が生成されます-
Value of first element is 20
Value of second element is 30
Value of third element is 40
あなたは、次の例に示すように、特定のインデックスで新しい値を割り当てることにより、配列の既存の要素を変更することができます-
var someInts = [Int]()
someInts.append(20)
someInts.append(30)
someInts += [40]
//Modify last element
someInts[2] = 50
var someVar = someInts[0]
print( "Value of first element is \(someVar)" )
print( "Value of second element is \(someInts[1])" )
print( "Value of third element is \(someInts[2])" )
上記のコードをコンパイルして実行すると、次の結果が生成されます-
Value of first element is 20
Value of second element is 30
Value of third element is 50
配列の繰り返し
あなたは、次の例に示すように、配列内の値のセット全体を反復するために for-in ループを使用することができます-
var someStrs = [String]()
someStrs.append("Apple")
someStrs.append("Amazon")
someStrs += ["Google"]
for item in someStrs {
print(item)
}
上記のコードをコンパイルして実行すると、次の結果が生成されます-
Apple
Amazon
Google
次の例に示すように、値とともにアイテムのインデックスを返す* enumerate()*関数を使用できます-
var someStrs = [String]()
someStrs.append("Apple")
someStrs.append("Amazon")
someStrs += ["Google"]
for (index, item) in someStrs.enumerated() {
print("Value at index = \(index) is \(item)")
}
上記のコードをコンパイルして実行すると、次の結果が生成されます-
Value at index = 0 is Apple
Value at index = 1 is Amazon
Value at index = 2 is Google
2つの配列を追加する
あなたは、次のように2つの配列からの値の組み合わせで新しい配列を生成する同じタイプの2つの配列を追加するために、加算演算子(+)を使用することができます-
var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)
var intsC = intsA + intsB
for item in intsC {
print(item)
}
上記のコードをコンパイルして実行すると、次の結果が生成されます-
2
2
1
1
1
countプロパティ
あなたは、配列の読み取り専用*カウント*プロパティを使用して、以下に示す配列内のアイテムの数を調べることができます-
var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)
var intsC = intsA + intsB
print("Total items in intsA = \(intsA.count)")
print("Total items in intsB = \(intsB.count)")
print("Total items in intsC = \(intsC.count)")
上記のコードをコンパイルして実行すると、次の結果が生成されます-
Total items in intsA = 2
Total items in intsB = 3
Total items in intsC = 5
空のプロパティ
以下に示すように、配列の読み取り専用*空*プロパティを使用して、配列が空かどうかを調べることができます-
var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)
var intsC = [Int]()
print("intsA.isEmpty = \(intsA.isEmpty)")
print("intsB.isEmpty = \(intsB.isEmpty)")
print("intsC.isEmpty = \(intsC.isEmpty)")
上記のコードをコンパイルして実行すると、次の結果が生成されます-
intsA.isEmpty = false
intsB.isEmpty = false
intsC.isEmpty = true