go基础——数组、指针、映射

88 阅读2分钟

数组

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