最近Go言語の勉強を初めました!
今回は配列の基礎について復習したので備忘録として簡単にまとめさせていただきます。
書き方
1. var 変数名 [長さ]データ型
2. var 変数名 [長さ]データ型 = [長さ]データ型{初期値A, 初期値B}
3. 変数名 := [...]データ型{初期値A, 初期値B}
例
package main
import "fmt"
func main() {
var a [3]int
a[0] = 100
a[1] = 200
a[2] = 300
fmt.Println(a) //=> [100 200 300]
var b [3]int = [3]int{100, 200, 300}
b = append(b, 400) //=> ERROR
fmt.Println(b) //=> [100 200 300]
c := [...]int{100, 200, 300}
fmt.Println(c) //=> [100 200 300]
}
配列は長さが決められており、appendなどを用いて要素を追加しようとするとエラーになります。
実際は次に説明するスライスを使いことが多いようです。スライスは配列の長さを変更することができます。
スライスの書き方
1.var 変数名 []型
2.var 変数名 []型 = []型{初期値1, ..., 初期値n}
3.変数名 := 配列[start:end]
package main
import "fmt"
func main() {
n := []int{1, 2, 3, 4, 5, 6}
fmt.Println(n) //=> [1 2 3 4 5 6]
fmt.Println(n[2]) //=> 3
fmt.Println(n[2:4]) //=> [3 4]
fmt.Println(n[:2]) //=> [1 2]
fmt.Println(n[2:]) //=> [3 4 5 6]
fmt.Println(n[:]) //=> [1 2 3 4 5 6]
n[2] = 100
fmt.Println(n) //=> [1 2 100 4 5 6]
var board = [][]int{
[]int{0, 1, 2},
[]int{3, 4, 5},
[]int{6, 7, 8},
}
//入れ子
fmt.Println(board) //=> [[0 1 2] [3 4 5] [6 7 8]]
n = append(n, 100)
fmt.Println(n) //=> [1 2 100 4 5 6 100]
}
↑のようにスライスの要素を変更すると、その元となる入れるの要素も変更されている。