package main; import ( "fmt" ) func main() { //声明一个数组 var a [3]int; a = [3]int{1, 2, 3}; //声明并赋值 var b [3]int = [3]int{1, 2, 3}; //声明并赋值(省略类型) var c = [3]int{1, 2, 3}; //声明并赋值简写 d := [3]int{1, 2, 3}; //GO中将数组长度作为数组类型的一部分 //e与f是两个类型不同的变量,他们之间不能进行赋值操作 var e [2]int; var f [3]int; //指定下标初始零值,将最后一个元素设置为1 var g [20]int = [20]int{19: 1}; //使用...让GO自动计算数组长度 h := [...]int{1, 2, 3, 4, 5}; //GO自动计算所需的数组长度,同变量g i := [...]int{19: 1}; //数组的元素是指针,j数组的元素是指向int的指针 aa := 1; bb := 2; j := [...]*int{&aa, &bb}; //指向数组的指针 k := [5]int{1, 2, 3, 4, 5}; //m是一个指向数组的指针 var m *[5]int = &k; //数组的比较 n := [2]int{1, 2}; o := [2]int{1, 2}; //通过new返回一个指向数组的指针 p := new([2]int); //也可以使用[]进行赋值 p[0], p[1] = 1, 2; //多维数组,二行二列 q := [2][2]int{{1, 2}, {3, 4}}; //自动计算多维数组,必须是* r := [...][2]int{{1, 2}, {3, 4}, {5, 6}}; fmt.Printf("%v\n%v\n%v\n%v\n%v\n%v\n%v\n%v\n%v\n%v\n%v\n", a, b, c, d, e, f, g, h, i, j, m); //进行数组比较 fmt.Println(n == o); fmt.Println(p); fmt.Println(q); fmt.Println(r); }