配列.append() / insert() / remove()
| 対応: | Swift 1.0(2014) |
|---|
配列に要素を追加・挿入・削除するメソッドです。Swiftの配列は値型で、変更するには『var』で宣言する必要があります。
構文
// 末尾に要素を追加します。 配列.append(要素) // 指定したインデックスに要素を挿入します。 配列.insert(要素, at: インデックス) // 指定したインデックスの要素を削除します。 配列.remove(at: インデックス) // 末尾の要素を削除します。 配列.removeLast() // 先頭の要素を削除します。 配列.removeFirst() // すべての要素を削除します。 配列.removeAll()
メソッド一覧
| メソッド | 概要 |
|---|---|
| append(_ newElement:) | 配列の末尾に要素を1つ追加します。 |
| append(contentsOf:) | 配列の末尾に別の配列の要素をまとめて追加します。 |
| insert(_ newElement:, at:) | 指定したインデックスの位置に要素を挿入します。 |
| remove(at:) | 指定したインデックスの要素を削除し、その要素を返します。 |
| removeFirst() | 先頭の要素を削除します。配列が空の場合はクラッシュします。 |
| removeLast() | 末尾の要素を削除します。配列が空の場合はクラッシュします。 |
| removeAll() | すべての要素を削除します。 |
サンプルコード
sample_array_append_insert_remove.swift
var fighters = ["八神庵", "草薙京", "テリー・ボガード"]
// 末尾に要素を追加します。
fighters.append("ブルー・マリー")
print(fighters) // ["八神庵", "草薙京", "テリー・ボガード", "ブルー・マリー"]
// 別の配列をまとめて追加します。
fighters.append(contentsOf: ["ゲーニッツ", "ルガール"])
print(fighters) // ["八神庵", "草薙京", "テリー・ボガード", "ブルー・マリー", "ゲーニッツ", "ルガール"]
// インデックス1の位置に挿入します。
fighters.insert("アンディ・ボガード", at: 1)
print(fighters) // ["八神庵", "アンディ・ボガード", "草薙京", ...]
// インデックス2の要素を削除します。
let removed = fighters.remove(at: 2)
print(removed) // "草薙京"
// 末尾の要素を削除します。
fighters.removeLast()
print(fighters.last ?? "") // "ゲーニッツ"
// すべての要素を削除します。
fighters.removeAll()
print(fighters.isEmpty) // true
swift array_append_insert_remove.swift ["八神庵", "草薙京", "テリー・ボガード", "ブルー・マリー"] ["八神庵", "草薙京", "テリー・ボガード", "ブルー・マリー", "ゲーニッツ", "ルガール"] ["八神庵", "アンディ・ボガード", "草薙京", "テリー・ボガード", "ブルー・マリー", "ゲーニッツ", "ルガール"] 草薙京 ゲーニッツ true
概要
Swiftの配列は値型(構造体)のため、変更するには必ず『var』で宣言する必要があります。『let』で宣言した配列に対してこれらのメソッドを呼び出すとコンパイルエラーになります。
『remove(at:)』は削除した要素を戻り値として返すため、削除しながら値を取り出したい場合に便利です。存在しないインデックスを指定した場合は実行時クラッシュ(Index out of range)になるため、事前に配列のサイズを確認してください。
要素の検索には『contains() / firstIndex()』、変換には『map() / compactMap()』を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。