go-数据类型
- Go(Golang)的基本数据类型主要可以分为:布尔型、数字型、字符串,以及一些常用的复合/派生类型
字符串
数字
- Go 语言中数字类型有多种,包括整数、浮点数、复数等。
- 整数包括有符号和无符号两种,有符号包括int8、int16、int32、int64,无符号包括uint8、uint16、uint32、uint64
- 最常用的是
int
有符号和无符号的区别是:有符号可以表示正数和负数,无符号只能表示正数。
有符号整数
- 注意int8 表示8位,意思是8位二进制位(bit),因为计算机存储的是二进制
| 类型 | 位数 | 范围 | 常见用途 |
|---|---|---|---|
int8 | 8 bit | -128 ~ 127 | 小范围数据、协议字段 |
int16 | 16 bit | -32768 ~ 32767 | 网络协议、硬件 |
int32 | 32 bit | -21亿 ~ 21亿 | Unicode字符、部分协议 |
int64 | 64 bit | 很大 | ID、时间戳、金额计算 |
int | 32/64 bit | 取决于系统 | 日常开发首选 |
无符号整数
| 类型 | 位数 | 范围 | 常见用途 |
|---|---|---|---|
uint8 | 8 bit | 0 ~ 255 | 字节数据 |
uint16 | 16 bit | 0 ~ 65535 | 端口、协议 |
uint32 | 32 bit | 0 ~ 42亿 | 网络、二进制 |
uint64 | 64 bit | 很大 | 大计数器、位运算 |
uint | 32/64 bit | 取决于系统 | 底层场景 |
// 对应八位的二进制位, 123刚好是8位的二进制
var num int8 = 123
var num int8 = 127 // int8最大范围是127
var num int8 = 128 // 会报错 ❌
var num int8 = 1234 //会报错 ❌
布尔类型
var ok bool = true
var failed bool = false
复合数据类型
array数组slice切片map映射struct结构体pointer指针function函数类型channel通道interface接口