🔰 基本構文:Arrayの作成
// 明示的に型を指定
let numbers: [Int] = [1, 2, 3, 4, 5]
// 型推論を利用
let fruits = ["🍎", "🍌", "🍇"]
// 空の配列
var emptyArray: [String] = []
配列は角括弧 [] で定義します。型を明示的に指定することも、Swiftの型推論を利用して自動で決定させることもできます。
🛠 要素の追加・削除
var items = ["A", "B", "C"]
// 追加
items.append("D")
// 挿入
items.insert("X", at: 1)
// 削除
items.remove(at: 0)
// 最後の要素を削除
items.removeLast()
配列は可変長で、要素の追加や削除が簡単に行えます。append で末尾に追加、insert で指定位置に挿入、remove で削除が可能です。
🔁 配列のループ処理
let names = ["Hana", "Sora", "Yuki"]
for name in names {
print("こんにちは、\(name)さん")
}
// インデックス付き
for (index, name) in names.enumerated() {
print("\(index): \(name)")
}
配列の要素をループ処理するには、for-in 文を使います。enumerated() を使うと、インデックスと値の両方を取得できます。
🧰 よく使うメソッド
contains(_:):値が含まれているか調べるfirst / last:先頭または末尾の要素を取得sorted():昇順に並び替えreversed():逆順に並び替えmap { }:要素を変換filter { }:条件で抽出
これらのメソッドを活用することで、配列の操作がより簡単かつ直感的になります。
Array🔍 mapとfilterの使い方
let nums = [1, 2, 3, 4, 5]
let doubled = nums.map { $0 * 2 } // [2, 4, 6, 8, 10]
let even = nums.filter { $0 % 2 == 0 } // [2, 4]
map は各要素を変換、filter は条件に合う要素だけを抽出します。これらの高階関数を使うことで、配列の操作が非常に柔軟になります。
📏 要素数と範囲
let array = ["A", "B", "C", "D"]
print(array.count) // 4
print(array[1...2]) // ["B", "C"]
※ インデックスが範囲外だとクラッシュするので注意!
配列の要素数は count プロパティで取得できます。また、スライス構文を使って部分的な配列を取得することも可能です。
📌 配列の型制約と初期化
// 10個のゼロで構成された配列
let zeros = Array(repeating: 0, count: 10)
// 配列の合成
let a = [1, 2]
let b = [3, 4]
let combined = a + b // [1, 2, 3, 4]
配列は同じ型の要素を持つ必要があります。Array(repeating:count:) を使うと、指定した値で初期化された配列を作成できます。また、+ 演算子で2つの配列を結合することも可能です。
⚠️ 注意:値型なので代入でコピーされる
var a = [1, 2, 3]
var b = a
b.append(4)
print(a) // [1, 2, 3]
print(b) // [1, 2, 3, 4]
配列は値型(struct)なので、代入や関数の引数でコピーされます。これにより、元の配列は変更されません。参照型のように動作しない点に注意が必要です。
Array | Struct