数组
切片(Slice)
1、扩展
arry := [...]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
fmt.Println("arry = ", arry)
s1 = arry[2:6]
s2 = s1[3:5]
Slice可以向后扩展,不可以向前扩展
s[i]不可以超越len(s),向后扩展不可以超越底层数组cap(s)
添加元素时,如果超越cap,系统会重新分配更大的底层数组
由于值传递的关系,必须接收append的返回值。如:s = append(s, val)
Slice实现原理
Map
Map创建:make(map[string]int)
获取元素:m[key]
key不存在时,获取Value类型的初始值
使用value, ok := m[key]来判断是否存在key
使用delete函数删除一个key
使用range遍历key,或者key/value对
不保证遍历顺序,如需要顺序,需手动对key进行排序
使用len函数获取元素个数
map的key适用类型
- map使用哈希表,必须可以相等比较
- 除了slice, map, function的内建类型都可以作为key
- Struct类型不包含上述字段,也可以作为key