[学习笔记]Golang--基础数据类型

1,不同类型的变量不能互相赋值或者操作,如
var a int8 = 16
var b int = 23
c := a + b

会报错,且int虽然默认32位,但和int32是不同的类型

iota只在声明枚举时有用

2、数组声明:
array:
var arr [5]int 长度为5,元素默认值为0,通过下标访问,如arr[2]
省略长度赋值法 var arr := […]int{1,2,3,4,5}
数组之间赋值是值赋值,所以函数传数组,是一个拷贝

slice:其实是数组的引用,保存的是数组指针
var arr [5]int{1,2,3,4,5}
sliceB := arr[1,3]
sliceB中即包含arr[1],arr[2],但不包括arr[3]

slice方法:
len:获取长度
cap:获取容量
append:追加元素,由于是引用类型,会改变底层数组的值,如果超过容量,会新开辟一个数组
copy:拷贝一个slice的元素到另一个slice,并返回拷贝的元素个数

map:
var numbers map[string] int
numbers := make(map[string]int)

map是无序的,每次打印都不一样,所以只能通过key取,不能通过index取
map长度不固定,跟slice一样,为引用类型
delete(numbers,”one”) // 删除key为one的元素

make初始化内部结构,并填充适当的值,返回初始化后(非零)值
new 返回结构的指针

posted @ 2019-10-24 10:44  蓝辰进击者  阅读(286)  评论(0编辑  收藏  举报