go基础5-高级数据类型-数组
数组
定义数组的格式 var <varName> [n]<type>,n>=0
数组长度也是类型的一部分,因此具有不同长度的数组为不同的类型
注意区分指向数组的指针和指针数组
数组在go中为值类型
数组之间可以用==和!=比较,但不可以用<>比较
可以使用new来创建数组,此方法返回一个指向数组的指针
go支持多维数组
go语言版冒泡排序
var a[2]int
b:= [3]int{19,1}
fmt.Println(a)
fmt.Println(b)
fmt.Println(b[1])
fmt.Println(b[2])
输出[0 0] [19 1 0] 1 0
c:=[...]int{1,2,3,4,5}
fmt.Println(c)
输出[1 2 3 4 5]
d:=[...]int{1:1,2:2,19:19}
fmt.Println(d)
输出[0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19]
数组指针
arr1:=[...]int{9:1}
var p *[10]int = &arr1
fmt.Println(p)
输出&[0 0 0 0 0 0 0 0 0 1]
指针数组
x,y:=1,2
arr2:=[...]*int{&x,&y}
fmt.Println(arr2)
输出[0xc42000e2a8 0xc42000e2b0]
new
p2:=new([10]int)
fmt.Println(p2)
输出&[0 0 0 0 0 0 0 0 0 0]
arr3 :=[10]int{}
arr3[1]=2
fmt.Println(arr3)
p3:=new([10]int)
p3[1]=2
fmt.Println(p3)
输出[0 2 0 0 0 0 0 0 0 0] &[0 2 0 0 0 0 0 0 0 0]
多维数组
arr4:=[2][3]int{
{1,1,1},
{2,2,2}}
fmt.Println(arr4)
输出[[1 1 1] [2 2 2]]
冒泡排序
arr5:=[...]int{5,6,8,3,2,9}
num:=len(arr5)
for i:=0;i<num;i++{
for j:=i+1;j<num;j++{
if(arr5[i]<arr5[j]){
temp:=arr5[i]
arr5[i] = arr5[j]
arr5[j]=temp
}
}
}
fmt.Println(arr5)
输出[9 8 6 5 3 2]

浙公网安备 33010602011771号