1、变量声明
指定变量类型,声明后若不赋值,使用默认值
根据值自行判定变量类型。
省略var, 注意 :=左侧的变量不应该是已经声明过的,否则会导致编译错误
2、go语言作用域
函数内定义的变量称为局部变量
函数外定义的变量称为全局变量
函数定义中的变量称为形式参数
3、go语言数组
声明数组:Go 语言数组声明需要指定元素类型及元素个数
多维数组
4、go语言指针
一个指针变量指向了一个值得内存地址
在指针类型前面加上 * 号(前缀)来获取指针所指向的内容
空指针:当一个指针被定义后没有分配到任何变量时,它的值为 nil
go指针数组
go指向指针的指针
go 向函数传递指针参数
5、语言结构体
结构体定义需要使用 type 和 struct 语句。struct 语句定义一个新的数据类型,结构体有中有一个或多个成员。type 语句设定了结构体的名称
一旦定义了结构体类型,它就能用于变量的声明
可以像其他数据类型一样将结构体类型作为参数传递给函数
可以定义指向结构体的指针类似于其他指针变量
6、go语言切片
与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大
切片是可索引的,并且可以由 len() 方法获取长度。
切片提供了计算容量的方法 cap() 可以测量切片最长可以达到多少
一个切片在未初始化之前默认为 nil,长度为 0
7、go语言范围
Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对的 key 值
8、go Map(集合)
Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。
Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的。