数组相关基础

初始化数组

//初始化数组
func main() {
	var testArray = [3]int{1, 2, 3}                    //定义数组,元素数量为3,类型为int型,数组内容是1,2,3
	var numArray = [...]string{"上海", "北京", "杭州", "青岛"} //定义一个不定长的数组.类型为string 内容...
	fmt.Println(testArray)
	fmt.Println(numArray)
	//使用索引值的方式来初始化数组
	a := [...]int{1, 2, 3} //给a 数组int类型 不定长度,数组赋值+定义.
	fmt.Println(a)
	//数组遍历
	for i, v := range numArray { //数组的遍历,遍历返回两个值,1索引,2数组内容
		fmt.Println(i, v)
	}
}

其中包含初始化数组.和数组的遍历

多维数组

//多维数组的定义以及遍历
func main() {
	a := [3][2]int{{1, 2}, {3, 4}, {5, 6}}
	for i, v := range a {
		for j, t := range v {
			fmt.Println(j, t)
		}
		fmt.Println(i, v)
	}

}

 返回结果


多维数组定义注意事项

//多维数组
func main() {
	a := [...][2]string{{"北京", "天津"}, {"上海", "广州"}, {"海南", "东北"}} //多维数组中只有第一层数组数量定义的时候可以使用[...],其余的不能用...进行定义数组中元素的数量
	for _, i := range a {
		fmt.Println(i)
	}

}

数组是值传递类型,在修改数组的值的时候如果不进行重新赋值那么原来的数组是保持不变的

//数组是值传递类型
func modifyArray(x [3]int) {
	x[0] = 100
}
func modifyArray2(x [3][2]int) {
	x[2][0] = 100
}

func main() {
	a := [3]int{1, 2, 3}
	modifyArray(a)
	fmt.Println(a)
	b := [3][2]int{{1, 2}, {2, 3}, {3, 4}}
	modifyArray2(b)
	fmt.Println(b)  //最终打印结果与定义结果相同,并没有因为modifyArray2的函数修改而导致原始数组的变动.

}

出入结果如下


练习题:

1.

//求数组[1,3,5,7,8]所有元素之和
//求数组[1,3,5,7,8]所有元素之和
func main() {
	a1 := [...]int{1, 3, 5, 7, 8}  //24
	n1 := 0
	for i := range a1 {
		n1 += a1[i]
	}
	fmt.Println(n1)
}

结果:


找出数组中和为指定值的两个元素的下标,比如从数组[1, 3, 5, 7, 8]中找出和为8的两个元素的下标分别为(0,3)和(1,2)。
func main() {
	a1 := [...]int{1, 3, 5, 7, 8}
	for i := 0; i < len(a1); i++ { //遍历出第一个元素
		for j := 1; j < len(a1); j++ { //遍历出第二个元素,
			if j > i && a1[i]+a1[j] == 8 {  //比较两者大小,以防出现位置替换重复下标的情况,求和
				fmt.Println(i, j) //打印结果下标
			}
		}
	}

}

结果如下


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值