数组

数组是值类型

  • [10]int 和 [20]int 是不同类型
  • 调用func f(arr [10]int) 会拷贝数组
  • 在go语言中一般不直接使用数组

切片 Slice

Slice 是一个视图

  • Slice本身没有数据,是对底层array的一个view(视图)
  • 添加元素时如果超越cap, 系统会重新分配更大de底层数组
  • 由于值传递的关系,必须接收append的返回值

Map

map的操作

  • 创建:make(map[string]int)
  • 获取元素: m[key]
  • key不存在时,获得value的初始值
  • 用value, ok := m[key] 判断key是否存在
  • 用delete删除一个key
    map的遍历
  • 使用range遍历key,value 键值对
  • 不保证遍历顺序,如需顺序,需手动对key排序
  • 使用len获取元素个数
    map的key
  • map使用哈希表,必须可以比较相等
  • 除了slice,map,function的内建类型都可以作为key
  • Struct类型不包含上述字段,也可作为key

最后修改:2020 年 12 月 05 日 02 : 54 PM