package main import "fmt" func main() { var a[3]int // 要素の値を省略したらゼロ値 fmt.Printf("a: %+v\n", a) // [0, 0, 0] b := [3]int{1, 2, 3} fmt.Printf("b: %+v\n", b) // [1, 2, 3] c := [3]int{1, 2} fmt.Printf("c: %+v\n", c) // [1, 2, 0] d := [3]int{2: 2} fmt.Printf("d: %+v\n", d) // [0, 0, 2] e := [3]int{0:1, 1: 2} fmt.Printf("e: %+v\n", e) // [1, 2, 0] // 要素が比較可能であればその配列型も比較可能 fmt.Printf("a==b: %v\n", a == b) // false fmt.Printf("c==e: %v\n", c == e) // true // f := [4]int{} // fmt.Printf("a==f: %v\n", a == f) // compile error: [3]int == [4]int hoge(a) fmt.Printf("a: %+v\n", a) // [0, 0, 0] // 値渡しなので安全だが性能的に非効率なことがある } func hoge(arg [3]int) { arg[0] = 4 fmt.Printf("%+v\n", arg) // [4, 0, 0] }