Swiftで2つの配列を結合する方法について書いています。
配列の結合をするには、下記の4つの方法があります。
・`+=`演算子を使う
・appendメソッドを使う
・flatMapメソッドを使う
サンプルコードは、Swiftバージョン5.8.1で検証しています。
プラス(+)演算子で結合する
+
演算子を使うことで、配列を結合することができます。
例えば、下記のように使うことができます。
let fruits1 = ["orange", "grape", "apple"]
let fruits2 = ["peach", "banana"]
let fruits = fruits1 + fruits2
print(fruits) // ["orange", "grape", "apple", "peach", "banana"]
最初にfruits1
・fruits2
の変数に対して、それぞれ配列を作成しています。
その次の処理で、ふたつの配列を+
演算子で結合しています。
これで、結合された配列が返ってくるので、fruits
変数で受け取っています。
print関数で確認すると「["orange", "grape", "apple", "peach", "banana"]
」と出力されました。
結合されたことが確認できました。
プラス(+=)演算子で結合する
+=
演算子を使うことで、+
演算子を使うよりも短く書いて、配列を結合することができます。
例えば、下記のように使うことができます。
var fruits1 = ["peach", "grape", "banana"]
let fruits2 = ["orange", "lemon"]
fruits1 += fruits2
print(fruits1) // ["peach", "grape", "banana", "orange", "lemon"]
先ほどと同じようにfruits1
・fruits2
の変数に配列を作成しています。
fruits1
変数に結合した内容を格納するため、var
で宣言しています。
次の処理で、+=
演算子を使っています。
これでfruits2
配列の内容が、fruits1
配列に結合されて加えられます。
print関数で確認すると「["peach", "grape", "banana", "orange", "lemon"]
」と出力されました。
ふたつの配列が結合されました。
appendメソッドで結合する
appendメソッドを使うことでも、結合することができます。
例えば、下記のように使うことができます。
var fruits1 = ["kiwi", "cherry", "blueberry"]
let fruits2 = ["banana", "apple"]
fruits1.append(contentsOf: fruits2)
print(fruits1) // ["kiwi", "cherry", "blueberry", "banana", "apple"]
先ほどと同じようにfruits1
・fruits2
の変数に配列を作成しています。
次の処理で、fruits1
変数からappendメソッドを呼び出しています。
名前付き引数のcontentsOf
を使って、結合したい配列を渡します。
こうすることで、呼び出し元のfruits1
配列に結合されます。
print関数で確認すると「["kiwi", "cherry", "blueberry", "banana", "apple"]
」と出力されました。
flatMapメソッドで結合する
flatMapメソッドを使うことでも、配列を結合することができます。
例えば、下記のように使うことができます。
let fruits1 = ["grape", "peach"]
let fruits2 = ["apple", "kiwi"]
let fruits = [fruits1, fruits2].flatMap({ $0 })
print(fruits) // ["grape", "peach", "apple", "kiwi"]
同様にしてfruits1
・fruits2
の変数に配列を作成しています。
次の処理で、配列に対して2つの配列を入れて、flatMapメソッドを呼び出しています。
こうすることで、並べた配列の内容をフラットにして、ひとつに結合します。
結果をfruits
変数で受け取って、print関数で出力しました。
確認すると「["grape", "peach", "apple", "kiwi"]
」と出力され、結合されたことが確認できました。
Swiftで配列を結合する方法まとめ
今回はSwiftで配列を結合する方法について書きました。
記事の内容をまとめると、下記のようになります。
・`+=`演算子を使って、左辺に足し込むように結合することができた。
・appendメソッドでも、contentsOfで配列を渡すと結合できる。
・flatMapを配列から呼び出して、配列の中の配列をフラットなひとつの配列にできた。
コメント