数组
数组比较
- 数组比较时,首先比较数组长度
- 如果数组长度相同并且每个元素都相同,则两个数组相等
- 不同数据类型的数组比较会报编译错误
数组作为参数
- 数组作为参数传递时会复制整个数组
- 函数内对数组的操作都是针对复制体
- 传递大数组时效率较低
- 可以通过指针传递数组以提高效率
|
|
切片
切片特性
- 切片是对数组的引用
- 切片可以动态增长
- 切片作为参数传递时只传递引用
切片操作
|
|
Map
Map 特性
- Map 是引用类型,零值为 nil
- Map 不是并发安全的,需要加锁保护
- Map 的键必须是可比较的类型
- Map 的迭代顺序是随机的
Map 操作
|
|
Channel
Channel 特性
- Channel 是引用类型,零值为 nil
- Channel 必须使用 make 创建
- Channel 可以是有缓冲或无缓冲的
- 关闭后的 channel 仍然可以读取数据
Channel 操作
|
|
指针
指针特性
- 指针可以指向任何类型的变量
- 指针的零值是 nil
- 指针可以用于修改原变量的值
指针使用
|
|
结构体
结构体特性
- 结构体字段可以导出(首字母大写)
- 结构体可以嵌入其他结构体
- 结构体可以实现接口
结构体示例
|
|
接口
接口特性
- 接口是隐式实现的
- 接口可以组合
- 空接口可以存储任何类型的值
接口示例
|
|