Go语言将数据类型分为四类:基础类型、复合类型、引用类型和接口类型
- 基础类型
- 整形
- 有符号整形
int8 int16 int32 int64
默认值0
- 无符号整形
uint8 uint16 uint32 uint64
默认值0
- 特殊整形
int uint byte rune uintptr
默认值0
- 有符号整形
- 浮点型
- 浮点型数
float32 float64
默认值0.0
- 复数类型
complex64 complex128
默认值0+0i
- 浮点型数
- 布尔类型
true false
默认值false
- 字符串类型
string
默认值""
- 整形
- 复合类型
- 数组类型
[SIZE]TYPE
默认值根据数组类型变化而变化 如[3]int
为[0,0,0]
- 结构体类型
struct
默认值根据随结构体内部类型变化而变化,如下默认值为{ 0}
即Name
为""
Age
为0
type Person struct { Name string Age int }
- 数组类型
- 引用类型
- 指针
*TYPE
默认值nil
- 切片
[]TYPE
默认值nil
- 字典
map[TYPE][TYPE]
默认值nil
- 通道
chan
默认值nil
- 函数
func
默认值nil
- 指针
- 接口类型
- 接口
interface
默认值nil
- 接口
这里要特别注意 nil
- 在
Go
中不同类型的nil
是无法比较的,他们的大小也不一样 - 引用类型中的
slice map chan
要使用make
函数初始化,如果常规var NAME TYPE
的方式声明,将不能通过正常的赋值方法来修改默认值