【Swift4】ArrayとNSArray・NSMutableArrayの違いまとめ【Xcode9】

Swiftの配列には大きく分けてArrayとNSArray系の2つがあります。
NSArray系にはNSArrayとNSMutableArrayの2つがあるのでSwiftで配列というとArray・NSArray・NSMutableArrayを使い分ける必要があります。

それぞれ、特徴がありますが簡単に説明すると以下のようになっています。

  1. Arrayは値渡し、NSArray系は参照渡し
  2. NSArrayは追加・削除ができない
  3. NSMutableArrayは追加・削除が自由

あとは定義や初期化、要素の追加、削除など、細かい所にも違いがあります。
詳しくは以下をご確認ください。

配列の定義

Array

NSArray・NSMutableArray

NSArray・NSMutableArrayの場合、型の指定は特になく、なんでもはいる<Any>型となっている

 

配列の宣言と初期化

Array

NSArray・NSMutableArray

配列の定義同様、配列の宣言時に型の指定は特になく、なんでもはいる<Any>型となっている

 

配列に要素を追加する

Array

NSArray・NSMutableArray

配列の最後に要素を追加する場合、Arrayのappend関数に代わりadd関数を使用する

 

配列の要素を削除する

Array

NSArray・NSMutableArray

Arrayと違いremoveFirst関数のようなものがない、removeObject関数を使えば同じことができるので問題はなさそう

 

Arrayは値渡し、NSArray系は参照渡し

Array

値渡しなので、array1とarray2の中身が別になる

NSArray・NSMutableArray

参照渡しなので、nsmArray1とnsmArray2の中身が同じになる