はじめに
こんにちは。キノコードです。
「【5分レッスン】Go超入門コース#08 配列」について説明します。
配列とは?
配列とは、複数のデータを格納することができるデータ型です。
変数のレッスンでは、変数は「箱」と説明しました。
例えるなら、変数は1つのデータしかいれらない「箱」なのに対して、配列は複数のデータを入れることができる「ロッカー」です。
1列の配列のことを1次元配列といい、2列以上ある配列は多次元配列といいます。
配列の1つ1つの箱のことを要素といい、箱の数を要素数といいます。
配列のそれぞれの要素には、場所の情報が割り当てられています。
データが住んでいる住所のようなものです。
この住所には、インデックスという番号というものが割り当てられています。
インデックスのことを「添え字」といったりもします。このレッスンでは、インデックスという名前で進めていきます。
一番左のインデックスは0から始まります。1から始まるわけではないので注意です。
そのため、1番最初のインデックスは「0」、2番目のインデックスは「1」、3番目は「2」、4番目は「3」といったように、インデックスは配列が格納されている「順番 - 1」となっています。
配列の宣言
書き方のきまりは次のとおりです。
変数 := [要素数]データ型{データ1,データ2,…}
配列を扱う変数名を書きます。配列のあとにコロン、イコール。角括弧の中に要素数、データ型。波括弧に格納するデータを書きます。
これだけではわかりにくいと思うので、ソースコードを見ていきましょう。
package main
import "fmt"
func main() {
a := [3] string {"sato", "suzuki", "takahashi" }
fmt.Println(a[0])
fmt.Println(a[1])
fmt.Println(a[2])
}
このコードは、aという変数に、’sato’,'suzuki','takahashi'という3つのデータを代入する配列を作るものです。
コードの意味を説明していきます。
最初に変数を記述します。
次に、コロン、イコール、要素数を書きます。データ型のStringを書いて配列に代入したいデータを記述します。
変数aのあとにインデックスを書いて、データを表示します。
表示されました。
配列の要素の変更方法
package main
import "fmt"
func main() {
a := [3] string {"sato", "suzuki", "takahashi" }
a[1] = "tanaka"
fmt.Println(a[0])
fmt.Println(a[1])
fmt.Println(a[2])
}
配列のデータを変更してみましょう。
要素を指定して代入します。
配列の2番目の鈴木さんを田中さんにしてみます。
2番めなので角括弧に書く要素数は1です。
変更されているか確認してみましょう。
suzukiさんがtanakaさんに変わっています。
要素数を省略して書くこともできます。
配列変数 := […]データ型{データ1,データ2,….}
ソースコードを見ていきましょう。
package main
import "fmt"
func main() {
a := [...] string {"sato", "suzuki", "takahashi" }
a[1] = "tanaka"
fmt.Println(a[0])
fmt.Println(a[1])
fmt.Println(a[2])
}
最初に変数a、コロン、イコールを書きます。角括弧の中にドットを3つ書きましょう。
こうすることにより、要素数を省略することができます。
表示させてみましょう。
先ほどと同じように、’sato’,'tanaka','takahashi'が表示されました。
多次元配列
package main
import "fmt"
func main() {
a := [2] [2] string{{"sato", "suzuki"}, {"takahashi", "tanaka"}}
fmt.Println(a[0][0])
fmt.Println(a[0][1])
fmt.Println(a[1][0])
fmt.Println(a[1][1])
}
2次元の配列を作ってみましょう。
2次元配列の場合は、かっこの中にかっこを書き、そこに代入するデータを記述します。
多配列の要素についてです。
2次元配列の場合は、角括弧を2回使用すれば良いです。
satoさんは、1つ目の配列の、1番目です。なので、0の0です。
suzukiさんは、1つ目の配列の、2番目です。なので、0の1です。
tanakaさんは、2つ目の配列の、1番目です。なので、1の0です。
takahashiさんは、2つ目の配列の、2番目です。なので、1の1です。
表示してみましょう。
satoさん、suzukiさん、takahashiさん、tanakaさんが表示されました。