配列
配列の利用
・配列のイメージ図
同じ型の複数のデータを、ひとまとめにして扱うことができます。
ひとまとめになった各々のデータに、順番に番号が振られます。
宣言と代入 let/var 配列名: [型] = [値1, 値2, 値3]
1 2 3 4 5 6 7 |
//後から中身の追加・削除・変更不可 let week: [String] = ["日", "月", "火", "水", "木", "金", "土"] print(week) //後から中身の追加・削除・変更可 var score: [Int] = [100, 70, 90, 80] print(score) |
定数・変数と同じくイミュータブル(不変)な配列・ミュータブル(可変)な配列が作成できます。
(宣言したあとに配列の要素の値の変更や、要素自体の追加・削除ができないかできるか)
要素の変更をする必要がない場合はletを利用し、不用意な値編集による不具合を減らし、PC側の負担を減らしましょう(varに比べPC内部での処理が高速です)。
※別の宣言方法
let/var 配列名: Array<型> = Array<型>()
あまり一般的ではありませんが、Javaに寄せた書き方としてこのような書き方もできます。このような書き方がもし勉強中に出てきたら、上の配列と同じものだな、と認識してください。
値の取り出し 配列名[添字]
配列は、入れた順番に0から数字が割り振られます。振られた数字を添字(そえじ)と言います。
添字を指定して任意の値を取り出してみましょう。また、書き換えることもできます。
1 2 3 4 5 6 7 8 |
// イミュータブル(不変)な配列 let week: [String] = ["日", "月", "火", "水", "木", "金", "土"] print(week[0]) //任意の値を取り出す // ミュータブル(可変)な配列 var score: [Int] = [100, 70, 90, 80] score[1] = 60 //任意の値を指定し書き換える print(score) |
空の配列の宣言 let/var 配列名 = [型]()
1 2 3 4 5 6 7 |
//正しくない書き方 var score: [Int] print(score) //正しい書き方 var score = [Int]() print(score) |
上のコードを実行すると、正しくない書き方ではエラーが発生します。
配列も宣言と代入を分けて書くことができますが、その場合は必ず中身を代入しなければいけません。
(今までの定数と変数も同じです。これについては03 nilとOptional型にて理由がわかります。)
また、上記を省略せずに書くと var score: [Int] = [Int]() となります。型推論が行われていますね。
以下、配列の扱いに関する書き方となります。ぜひPlaygroundで試してみてください。
要素の追加
・1つずつ末尾に追加
配列名.append(値) |
配列名 += [値] |
・複数追加
配列名.append(contentsOf:[値1, 値2]) |
・指定した場所にデータを追加
配列名.insert(値, at: 添字) |
要素の個数を調べる
・個数を返す
配列名.count |
・空かどうかを返す
配列名.isEmpty |
要素の削除
・添字を指定して削除
配列名.remove(at:添字) |