在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。
Go语言中数据类型大体分为两类:基本数据类型和派生数据类型
基本数据类型
基本数据类型分为:数值型、布尔型和字符串。
数值型
整型
类型 | 描述 | 范围 | 占用空间 |
---|---|---|---|
int8 | 有符号 8 位整型 | -128 到 127 | 1字节 |
int16 | 有符号 16 位整型 | -2^15 到 2^15 - 1 | 2字节 |
int32 | 有符号 32 位整型 | -2^31 到 2^31 - 1 | 4字节 |
int64 | 有符号 64 位整型 | -2^63 到 2^63 - 1 | 8字节 |
uint8 | 无符号 8 位整型 | 0 到 255 | 1字节 |
uint16 | 无符号 16 位整型 | 0 到 2^16 - 1 | 2字节 |
uint32 | 无符号 32 位整型 | 0 到 2^32 - 1 | 4字节 |
uint64 | 无符号 64 位整型 | 0 到 2^64 - 1 | 8字节 |
byte | 类似uint8,用来存储字符 | 0 到 255 | 1字节 |
rune | 类似int32,表示一个Unicode码 | -2^31 到 2^31 - 1 | 4字节 |
int | 系统32位类似int32,64位类似int64 | 视系统而定 | 视系统而定 |
uint | 系统32位类似uint32,64位类似uint64 | 视系统而定 | 视系统而定 |
uintptr | 无符号整型,用于存放一个指针 | - | - |
浮点型
类型 | 描述 | 占用空间 |
---|---|---|
float32 | IEEE-754 32位浮点型数 | 4字节 |
float64 | IEEE-754 64位浮点型数 | 8字节 |
complex64 | 32 位实数和虚数 | - |
complex128 | 64 位实数和虚数 | - |
布尔型(bool)
- 布尔型也叫bool型,其值只可以是常量 true 或者 false。
- bool类型占1个字节。
- bool类型适用于逻辑运算,一般用于程序流程控制。
字符型
Go语言中没有专门的字符型,使用byte来保存单个字母字符。
字符串(string)
- 字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。
- 字符串一旦赋值了,字符串就不能修改了。
var str = "hello"
str[0] = 'a' //错误写法,不能去修改str的内容。
基本数据类型的默认值
Go语言中,数据类型都有一个默认值,又叫零值。当变量没有赋值时,就会保留默认值。
数据类型 | 默认值 |
---|---|
整型 | 0 |
浮点型 | 0 |
字符串 | "" |
布尔型 | false |
派生数据类型
- 指针类型(pointer)
- 数组类型
- 切片类型(slice)
- 字典类型(map)
- 结构体类型(struct)
- 管道类型(channel)
- 接口类型(interface)
- 函数类型(函数也是一种数据类型)