数组
var 数组名 [数组大小] 数据类型
var name1 [5] int
如果数组长度不确定,可以使用 ... 代替数组的长度,编译器会根据元素个数自行推断数组的长度:
var balance = [...] float32{1000.0, 7.1, 3.4, 7.0, 11.5}
访问数组元素
数组元素可以通过索引(位置)来读取。格式为数组名后加中括号,中括号中为索引的值。
var salary float32 = balance[9]
二维数组是最简单的多维数组,二维数组本质上是由一维数组组成的。
二维数组定义方式如下:
var arrayName [ x ][ y ] var_type
二维数组通过指定坐标来访问。如数组中的行索引与列索引,例如:
val := a[2][3]
var value int = a[2][3]
指针
一个指针变量指向了一个值的内存地址。
类似于变量和常量,在使用指针前你需要声明指针。 指针声明格式如下:
var varname *vartype
映射(map)
Go语言中内置的一种类型,它将键值对相关联,我们可以通过键 key来获取对应的值 value。 类似其它语言的集合
基本语法
var map变量名 map[keytype]valuetype
注意
(1)map集合在使用前一定要make
(2)map的key-value是无序的
(3)key是不可以重复的,如果遇到重复,后一个value会替换前一个value
(4)value可以重复的
增加和更新操作:
map["key"]= value 如果key还没有,就是增加,如果key存在就是修改。
删除操作:
delete(map,"key") , delete是一个内置函数,如果key存在,就删除该key-value,如果k的y不存在,不操作,但是也不会报错
清空操作:
(1)如果我们要删除map的所有key ,没有一个专门的方法一次删除,可以遍历一下key,逐个删除
(2)或者map = make(...),make一个新的,让原来的成为垃圾,被gc回收
查找操作:
value ,bool = map[key]
value为返回的value,bool为是否返回 ,要么true 要么false