ログアウト

配列

配列の利用

・配列のイメージ図


同じ型の複数のデータを、ひとまとめにして扱うことができます。
ひとまとめになった各々のデータに、順番に番号が振られます。

 

宣言と代入 let/var 配列名: [型] = [値1, 値2, 値3]

 定数・変数と同じくイミュータブル(不変)な配列・ミュータブル(可変)な配列が作成できます。
(宣言したあとに配列の要素の値の変更や、要素自体の追加・削除ができないかできるか)

 要素の変更をする必要がない場合はletを利用し、不用意な値編集による不具合を減らし、PC側の負担を減らしましょう(varに比べPC内部での処理が高速です)。

※別の宣言方法
  let/var 配列名: Array<> = Array<>()

あまり一般的ではありませんが、Javaに寄せた書き方としてこのような書き方もできます。このような書き方がもし勉強中に出てきたら、上の配列と同じものだな、と認識してください。

 

値の取り出し 配列名[添字]

配列は、入れた順番に0から数字が割り振られます。振られた数字を添字(そえじ)と言います。
添字を指定して任意の値を取り出してみましょう。また、書き換えることもできます。

 

空の配列の宣言 let/var 配列名 = [型]()

上のコードを実行すると、正しくない書き方ではエラーが発生します。
配列も宣言と代入を分けて書くことができますが、その場合は必ず中身を代入しなければいけません。
(今までの定数と変数も同じです。これについては03 nilとOptional型にて理由がわかります。)

また、上記を省略せずに書くと var score: [Int] = [Int]() となります。型推論が行われていますね。

 

以下、配列の扱いに関する書き方となります。ぜひPlaygroundで試してみてください。

要素の追加

・1つずつ末尾に追加

配列名.append(値) 
配列名 += [値] 

・複数追加

配列名.append(contentsOf:[値1, 値2]) 

・指定した場所にデータを追加

配列名.insert(値, at: 添字)

要素の個数を調べる

・個数を返す

配列名.count

・空かどうかを返す

配列名.isEmpty

要素の削除

・添字を指定して削除

配列名.remove(at:添字)