go编程基础-数组

一、定义数组

定义的格式:var [n] , n>=0;
列:var a [2] int 长度为2的int型数组;输出:[0 0]
a := [2]int{1}等同于 a := [3]int{0:1,1:0}
长度为2的int型数组;输出:[1 0]
a := [3]int{2:1} 等同于 a := [3]int{0:0,1:0,2:1}
长度为3的int型数组;输出:[0 0 1]
不指定数组长度,列
a := [...] int {2,1,9,6,5}go语言会创建长度为5的int型数组;
a := [...] int {19:1} go语言会创建长度为20的int型数组;

二、数组指针和指针数组

数组指针

a := [...] int {19:1}
var p *[20] int = &a
fmt.Println(p)

指针数组

x,y := 1,2
a := [...] *int {&x:&y}
fmt.Println(a)

三、数据传递和比较

go语言中数组为值类型,传递数组时是传递整个数组的拷贝,而不是传递地址给方法或函数;

#######数组之间可以使用==和!=比较,(数组长度也是类型的一部分,因此具有不同长度的数组为不同类型,不能进行==和!=比较)

a := [2] int {2,1}
b := [2] int {2,5}
fmt.Println(a==b) 输出false

a := [2] int {2,1}
b := [2] int {2,1}
fmt.Println(a==b) 输出true

a := [3] int {2,1,3}
b := [2] int {2,1}

a := [2] string{"2","1"}
b := [2] int {2,1}
fmt.Println(a==b) 类型不一致不能进行比较

四、数组单个元素赋值

a := [10] int{}
a[1] =2
fmt.Println(a)

p:=new ([10]int)
p[1]=2
fmt.Println(p)

五、多维数组

a:=[2][3]{{1,2,3},{1,1,2}} 2个长度为3的数组元素
输出[[1 2 3][1 1 2]]
同一维数组
a:=[2][3]{{1:3},{0:2}}
输出[[0 3 1][2 0 0]]

六、冒泡排序(由大到小)

a := [...]int{1, 6, 5, 8, 10, 2}
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)

你可能感兴趣的:(go编程基础-数组)