5、Go的数组

定义数组的格式:var <varName> [n] <type>
数组长度也是类型的一部分,因此具有不同长度的数组为不同类型;
注意区分指向数组的指针和指针数组;
数组在Go中为值类型;
数组之间可以使用==!=进行比较,但不可以使用<>
可以使用new来创建数组,此方法返回一个指向数组的指针。

	// 定义数组a
	var a[2]int
	// 定义数组b
	var b[3]int
	
	// 不能进行比较
	// 编译不能通过:invalid operation: a == b (mismatched types [2]int and [3]int)
	fmt.Println(a==b)
	a := [2]int{1,2}
	fmt.Println(a) //打印:[1 2]
	
	// 第二元素不写,默认为0
	b := [2]int{1}
	fmt.Println(b) //打印:[1 0]

	c := [...]int{1,2,3,4,5}
	// 打印数组长度
	fmt.Println(len(c)) //打印:5


	// 设置数组索引为99的元素值为1
	d := [...]int{99:1}
	fmt.Println(len(d)) //打印:100

指针数组、指向数组的指针

	// 定义2个变量
	x,y := 1,2

	// 定义指针数组
	a := [2]*int{&x,&y}
	fmt.Println(a) //打印:[0xc00001a050 0xc00001a058]

	b := [2]int{2,3}
	// 指向数组的指针
	var p *[2]int = &b
	fmt.Println(p) //打印:&[2 3]

new关键字

	// 返回一个指向数组的指针
	 p := new([10]int)
	 fmt.Println(p) //打印:&[0 0 0 0 0 0 0 0 0 0]

多维数组

	a := [2][3]int{
		{1,2,3},
		{2,2,3},
	}
	fmt.Println(a) //打印:[[1 2 3] [2 2 3]]

冒泡排序

	a := [...]int{5,2,6,3,9}
	fmt.Println(a)
	
	count := len(a)
	for i:=0;i<count;i++ {
		for j:=i+1;j<count;j++ {
			if a[i] < a[j] {
				temp := a[i]
				a[i] = a[j]
				a[j] = temp
			}
		}
	}
	fmt.Println(a) //打印:[9 6 5 3 2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值