【Swift】パターンは3つ!配列に要素を追加する方法!
(*このページは2021年3月3日に更新されました。)
Swiftで配列に要素を追加するにはどのようにすればよいのでしょか?
結論から言いますと、配列に要素を追加するには「+=」、「append」、「appendContensOf」の3つの方法があります。
しかし、配列の追加はミュータブル(操作可能)である場合でしか使用することができませんので注意してください。
また、「+=」や「append」や「appendContensOf」は一次元配列だけでなく、2次元や3次元のような多次元配列でも使用することができます。
今回はSwiftで配列に要素を追加する方法について以下の内容を解説していきます。
⚫︎ 配列に要素を追加する3つのパターン
⚫︎ +=で配列に要素を追加する場合
⚫︎ appendで配列に要素を追加する場合
⚫︎ appendContensOfで配列に要素を追加する場合
⚫︎ +=で多次元配列に要素を追加する場合
⚫︎ appendで多次元配列に要素を追加する場合
⚫︎ appendContensOfで多次元配列に要素を追加する場合
目次
配列とは
配列とは複数の値を格納できるデータ型となります。
そして、「var」として定義するとミュータブル(操作可能)な配列に、「let」として定義するとイミュータブル(操作不可能)な配列となります。
配列に要素を追加する3つのパターン
配列に要素を追加する3つのパターンを紹介します。
⚫︎+=を使用する:
+=を使用することで配列に要素を追加することができます。
1 |
配列名 += ["要素A", ...] |
+=は1つの要素だけでなく、複数の要素をまとめて追加することができます。
⚫︎appendを使用する:
appendを使用することで配列に要素を追加することができます。
1 |
配列名.append("要素A") |
しかし、appendは1つの要素しか追加できないので複数追加する場合は向いていません。
⚫︎appendContensOfを使用する:
appendContensOfを使用することで配列に要素を追加することができます。
1 |
配列名.append(contentsOf: ["要素A", ...]) |
appendContensOfも+=同様に1つの要素だけでなく、複数の要素をまとめて追加することができます。
しかし、これらの操作はミュータブルな配列の場合にしか使用できませんので注意してください。
イミュータブルな配列に使用するとエラーが発生します。
配列に要素を追加するサンプルコード
配列に要素を追加するサンプルコードを紹介します。
+=で配列に要素を追加する場合
+=で配列に要素を追加してみます。
例
1 2 3 4 5 6 7 8 |
print("+=で配列に要素を追加する") var list1: [String] = ["渋谷", "新宿", "世田谷", "千代田", "足立"] print("・追加前:") print("\(list1)") list1 += ["港", "品川"] print("・追加後:") print("\(list1)") |
出力結果
+=で配列に要素を追加する
・追加前:
[“渋谷”, “新宿”, “世田谷”, “千代田”, “足立”]
・追加後:
[“渋谷”, “新宿”, “世田谷”, “千代田”, “足立”, “港”, “品川”]
+=によって多次元配列に要素を追加しています。
そのため、「港」と「品川」が追加されています。
appendで配列に要素を追加する場合
appendで配列に要素を追加してみます。
例
1 2 3 4 5 6 7 8 |
print("・appendで多次元配列に要素を追加する") var list1: [String] = ["渋谷", "新宿", "世田谷", "千代田", "足立"] print("・追加前:") print("\(list1)") list1.append("品川") print("・追加後:") print("\(list1)") |
出力結果
・appendで多次元配列に要素を追加する
追加前:
[“渋谷”, “新宿”, “世田谷”, “千代田”, “足立”]
追加後:
[“渋谷”, “新宿”, “世田谷”, “千代田”, “足立”, “品川”]
appendで多次元配列に要素を追加しています。
そのため、「品川」が追加されて表示されています。
appendContensOfで配列に要素を追加する場合
appendContensOfで配列に要素を追加してみます。
例
1 2 3 4 5 6 7 8 |
print("appendContensOfで配列に要素を追加する") var list1: [String] = ["渋谷", "新宿", "世田谷", "千代田", "足立"] print("・追加前:") print("\(list1)") list1.append(contentsOf: ["江東", "品川"]) print("・追加後:") print("\(list1)") |
出力結果
appendContensOfで配列に要素を追加する
・追加前:
[“渋谷”, “新宿”, “世田谷”, “千代田”, “足立”]
・追加後:
[“渋谷”, “新宿”, “世田谷”, “千代田”, “足立”, “江東”, “品川”]
appendContensOfで配列に要素を追加しています。
そのため、「江東」と「品川」が追加されています。
多次元の配列に要素を追加するサンプルコード
多次元の配列に要素を追加するサンプルコードを紹介します。
+=で多次元配列に要素を追加する場合
+=で多次元配列に要素を追加してみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
print("・+=で多次元配列に要素を追加する") var list1: [[String]] = [["渋谷", "新宿", "世田谷"], ["港", "中", "中川"]] print("追加前:") print("\(list1)") list1 += [["阿倍野", "鶴見", "天王寺"]] print("追加後1:" print("\(list1)") list1[0] += ["台東", "文京"] print("追加後2:") print("\(list1)") list1[1] += ["熱田", "南"] print("追加後3:") print("\(list1)") |
出力結果
・+=で多次元配列に要素を追加する
追加前:
[[“渋谷”, “新宿”, “世田谷”], [“港”, “中”, “中川”]]
追加後1:
[[“渋谷”, “新宿”, “世田谷”], [“港”, “中”, “中川”], [“阿倍野”, “鶴見”, “天王寺”]]
追加後2:
[[“渋谷”, “新宿”, “世田谷”, “台東”, “文京”], [“港”, “中”, “中川”], [“阿倍野”, “鶴見”, “天王寺”]]
追加後3:
[[“渋谷”, “新宿”, “世田谷”, “台東”, “文京”], [“港”, “中”, “中川”,”熱田”, “南”], [“阿倍野”, “鶴見”, “天王寺”]]
+=によって多次元配列に要素を追加しています。
そのため、二次元配列には「阿倍野」と「鶴見」と「天王寺」の配列が、一次元配列には「台東」と「文京」の要素と「熱田」と「南」の要素が追加されています。
appendで多次元配列に要素を追加する場合
appendで多次元配列に要素を追加してみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
print("・appendで多次元配列に要素を追加する") var list1: [[String]] = [["渋谷", "新宿", "世田谷"], ["港", "中", "中川"]] print("追加前: " + "\(list1)") list1.append(["旭", "生野", "城東"]) print("追加後1:") print("\(list1)") list1[0].append("目黒") print("追加後2:") print("\(list1)") list1[1].append("熱田") print("追加後3:") print("\(list1)") |
出力結果
・appendで多次元配列に要素を追加する
追加前:
[[“渋谷”, “新宿”, “世田谷”], [“港”, “中”, “中川”]]
追加後1:
[[“渋谷”, “新宿”, “世田谷”], [“港”, “中”, “中川”], [“旭”, “生野”, “城東”]]
追加後2:
[[“渋谷”, “新宿”, “世田谷”, “目黒”], [“港”, “中”, “中川”], [“旭”, “生野”, “城東”]]
追加後3:
[[“渋谷”, “新宿”, “世田谷”, “目黒”], [“港”, “中”, “中川”, “熱田”], [“旭”, “生野”, “城東”]]
appendで多次元配列に要素を追加しています。
そのため、二次元配列には「旭」と「生野」と「城東」の配列が、一次元配列には「目黒」の要素と「東」の要素が追加されています。
appendContensOfで多次元配列に要素を追加する場合
appendContensOfで多次元配列に要素を追加してみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
print("・appendContensOfで多次元配列に要素を追加する") var list1: [[String]] = [["渋谷", "新宿", "世田谷"], ["港", "中", "中川"]] print("追加前:") print("\(list1)") list1.append(contentsOf: [["住吉", "大正", "平野"]]) print("追加後1:") print("\(list1)") list1[0].append(contentsOf: ["港"]) print("追加後2:") print("\(list1)") list1[1].append(contentsOf: ["守山"]) print("追加後3:") print("\(list1)") |
出力結果
・appendContensOfで多次元配列に要素を追加する
追加前:
[[“渋谷”, “新宿”, “世田谷”], [“港”, “中”, “中川”]]
追加後1:
[[“渋谷”, “新宿”, “世田谷”], [“港”, “中”, “中川”], [“住吉”, “大正”, “平野”]]
追加後2:
[[“渋谷”, “新宿”, “世田谷”, “港”], [“港”, “中”, “中川”], [“住吉”, “大正”, “平野”]]
追加後3:
[[“渋谷”, “新宿”, “世田谷”, “港”], [“港”, “中”, “中川”, “守山”], [“住吉”, “大正”, “平野”]]
appendContensOfで多次元配列に要素を追加しています。
そのため、二次元配列には「住吉」と「大正」と「平野」の配列が、一次元配列には「港」の要素と「守山」の要素が追加されています。
まとめ
配列に要素を追加するには3つの方法がある
Swiftで配列に要素を追加するには「+=」か「append」か「appendContensOf」を使用する。
⚫︎ 配列とは複数の値を格納するデータ型である
⚫︎ 配列に要素を追加するには「+=」か「append」か「appendContensOf」3つの方法がある
(配列がイミュータブルである場合は追加することができない)
⚫︎ 「+=」や「append」や「appendContensOf」は多次元配列の要素でも使用することができる
(多次元配列の場合は配列名の後ろにインデックスを指定する)
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。