golang 数组、切片、map 06

本文详细探讨了Go语言中的数组、切片和Map的使用,包括它们的概念、创建、操作以及在实际编程中的应用。对于数组,解释了其固定长度的特性;在切片部分,讨论了它的灵活性和动态增长;在Map章节,阐述了键值对的存储和访问方式。此外,还提及了list队列的基本操作。
摘要由CSDN通过智能技术生成
1. close:主要用来关闭channel
2. len:用来求长度,比如string、array、slice、map、channel
3. new:用来分配内存,主要用来分配值类型,比如int、struct。返回的是指针
4. make:用来分配内存,主要用来分配引用类型,比如chan、map、slice
5. append:用来追加元素到数组、slice中
6. panic和recover:用来做错误处理

go get安装第三方包

数组 

/*
数组
长度固定的数据类型,元素类型都是一样的。数组在内存中是连续的存储空间,可以有效的提高cpu的执行效率。
变量或者数组在定义时,如果没赋值,会设置默认值。
整形:0
string:""
bool:false
*/
func RunArray() {
	//数组定义方式1
	//var arrayValue1 [10]int
	//fmt.Println(arrayValue1)
	//
	数组定义方式2,通过推算设置数组的长度
	//arrayValue2 := [...]int{1, 2, 3, 4, 5}
	//fmt.Println(arrayValue2)

	//数组定义方式3, 第一百的位置参数是200,第300的位置参数是500,0开始所以共301长度
	arrayValue3 := [...]int{100: 200, 300: 500}
	fmt.Println(len(arrayValue3), arrayValue3)
}

/*
go语言中数组是值类型
下标0开始,长度由len()获取
*/
func runArray2() {
	//直接调用,不会在其他函数内改变值。(除非使用指针类型)
	//直接传值,是拷贝数组调用。

	arrayV1 := [10]int{1, 2, 3, 4}
	changeArray1(arrayV1)
	fmt.Println(arrayV1)
	changeArrayPointer(&arrayV1)
	fmt.Println(arrayV1)
}

//这里会直接拷贝数组传入
func changeArray1(v1 [10]int) {
	v1[1] = 100
	v1[2] = 200
}

func changeArrayPointer(v1 *[10]int) {
	v1[3] = 300
	v1[4] = 400
}

/*
二维数组
*/
func runTwo() {
	//1
	var arrayTwo1 [4][2]int
	fmt.Println(arrayTwo1)

	//2
	arrayTwo2 := [4][2]int{
  {1, 2}, {2, 3}, {3, 4}, {4, 5}}
	fmt.Println(arrayTwo2)

	//3 通过指定位置参数
	arrayTwo3 := [4][2]int{2: {1, 2}, 3: {2, 3}}
	fmt.Println(arrayTwo3)
}

 


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值