首先来看一下如何声明数组:
package mainimport "fmt"
var arr [2]int //申明一个数组
func main() { arr[0] = 1 //数组赋值 fmt.Println(arr) arrtest := [3]int{1, 2, 3} //数组的另一种申明方式 fmt.Println(arrtest) a := [...]int{1, 2} //[...]自动识别数组的长度 fmt.Println(a) fmt.Println(len(a))//输出数组的长度 }
a:=[...]int{1,2,3,45}
a:=[3]int{1,2,3} var p * [3]int = &a //这种是指针数组 我们看到可以直接输出指向数组的指针 x , y :=1 ,3 a := [...]*int{&x ,&y} str.Println(a) //输出这样[0xc080000068 0xc080000070]的地址 这就是数组指针
p := new([10]int) fmt.Println(p) //&[0 0 0 0 0 0 0 0 0 0] 输出一个指针
c := [3][2]int{{1: 2}, {2, 1}, {2, 2}} fmt.Println(c) //输出[[0 2] [2 1] [2 2]]
下边是slice的申明和使用其实这就是一种动态的数组
package mainimport "fmt"
var arr [2]int //申明一个数组
func main() { arr[0] = 1 //数组赋值 fmt.Println(arr) arrtest := [3]int{1, 2, 3} //数组的另一种申明方式 fmt.Println(arrtest) a := [...]int{1, 2} //[...]自动识别数组的长度 fmt.Println(a) fmt.Println(len(a))//输出数组的长度 }
来看一下冒泡算法之go语言版
package mainimport "fmt"
func main() { a := [...]int{3, 2, 5, 8, 6} fmt.Println(a) num := len(a) for i := 0; i < num; i++ { for j := i + 1; j < num; j++ { if a[i] < a[j] { temp := a[i] a[i] = a[j] a[j] = temp } } } fmt.Println(a) }