本文先介绍go中前两个派生的类型:指针、数组。
1)指针:存放地址的类型。
做系统编程、操作系统或者网络应用,指针更是不可或缺的一部分!
Go语言为程序员提供了控制数据结构指针的能力,但是,并不能进行指针运算(+,-,<,<=等等)。
go提供垃圾回收,来处理指针的空间回收。
Go语言的指针分两部分:类型指针,切片。
=》类型指针,就是我们c中的普通指针。 直接使用指针,而无须拷贝数据
=》切片,一种结构体,起始元素的原始指针、元素数量和容量组成! 可见,切片使用到了指针。
创建指针的方式:普通创建,new创建(new() 函数可以创建一个对应类型的指针,创建过程会分配内存,被创建的指针指向默认值)
=》var val int = 100
var p_val *int = &val
=》str := new(string)
2)数组(同类型,固定大小。分为,一维数组,多维数组)
因为数组的长度是固定的,所以在Go语言中很少直接使用数组!!!
数组知识点:数组声明、数组定义、数组遍历、
=》数组声明: var 数组变量名 [元素数量]Type = [元素数量]Type{....}
数组变量名 [元素数量]Type := [元素数量]Type{....}
=》数组元素使用: 数组变量名[下标]
=》数组遍历: for range来遍历
实例:
var team [3]string
team[0] = "hammer"
team[1] = "soldier"
team[2] = "mum"
for k, v := range team {
fmt.Println(k, v)
}
结果:
0 hammer
1 soldier
2 mum