Go言語の配列の仕組みと使い方のサンプルです。
目次
仕組み | 配列とは |
サンプル | 配列を作成する |
配列を作成する (最初に配列の数を指定) | |
配列の値をfor文で取得する | |
配列の値をソートする |
配列とは
- 1つの変数で同じ型の複数の値を保持できます。
- 各項目を要素(element)といいます。
- 要素の順序をインデックス(添字)で管理します。上記図では[0]、[1]、[2]、[3]がインデックスです。
- インデックスの先頭は0から始まります。
- 最初に配列の数を決める必要があります。後から配列の数を変更できません。
- 以下は、Go言語公式のEffective Goの配列のリンクです。
https://golang.org/doc/effective_go.html#arrays
配列を作成する
配列を作成するサンプルです。
package main
import "fmt"
func main(){
a := [3]string {"赤","黄","青"}
fmt.Println(a[0]) //赤
fmt.Println(a[1]) //黄
fmt.Println(a[2]) //青
b := []int {1,2,3}
fmt.Println(b[0]) //1
fmt.Println(b[1]) //2
fmt.Println(b[2]) //3
}
6行目は、string型の配列を作成しています。要素の数は3つです。
11行目は、int型の配列を作成しています。6行目のように[]の中に要素の数を指定しなくても作成できます。
配列を作成する (最初に配列の数を指定)
配列を作成するサンプルです。
最初に配列の数を指定して後から値を追加します。
package main
import "fmt"
func main(){
var a[3] string
a[0] = "赤"
a[1] = "黄"
a[2] = "青"
fmt.Println(a[0]); //赤
fmt.Println(a[1]); //黄
fmt.Println(a[2]); //青
var b[3] int
b[0] = 1
b[1] = 2
b[2] = 3
fmt.Println(b[0]); //1
fmt.Println(b[1]); //2
fmt.Println(b[2]); //3
}
5行目は、String型の配列を作成しています。6~8行目は配列に値を設定しています。
13行目は、int型の配列を作成しています。14~16行目は配列に値を設定しています。
配列の値をfor文で取得する
配列の値をfor文で取得するサンプルです。
package main
import "fmt"
func main(){
color1 := []string{"赤","黄","青"}
for a, b := range color1{
fmt.Println(a,b) //0 赤 1 黄 2 青
}
for _, b := range color1{
fmt.Println(b) //赤 黄 青
}
}
5行目は、配列です。
7行目は、for文+rangeで配列のすべての要素にアクセスします。
8行目は、キーと値を表示します。
値のみを取得する場合は、11行目のように、キーに当たる部分をアンダースコア(_)にします。
配列の値をソートする
配列の値をソートするサンプルです。
package main
import "fmt"
import "sort"
func main(){
// 配列 数値
a := []int {100,2,99}
sort.Sort(sort.IntSlice(a))
fmt.Println(a) // [2 99 100]が出力される
// 配列 文字列
b := []string {"da","abb","pccc"}
sort.Strings(b)
fmt.Println(b) // [abb da pccc]が出力される
}
7行目は、数値の配列です。
8行目でソートをしています。
結果は、2,99,100になります。100,2,99にはなりません。
12行目は、文字列の配列です。
13行目でソートをしています。
結果は、先頭の文字のabc順に表示されます。
関連の記事
Go言語 if文のサンプル
Go言語 for文のサンプル(break/continue)
Go言語 switch文のサンプル