版本:1.18.3
Go 语言数据类型首先分为两大类 基础数据类型 和 派生数据类型。
基础数据类型
数值型 - 所有的整数类型默认值都为 0。
整数类型 - 不显示声明的整数默认类型是 int。
有符号整数类型 - 声明关键字:int、int8、int16、int32、int64、rune。
无符号整数类型 - 声明关键字:uint、uint8、uint16、uint32、uint64、byte、unitptr。
浮点类型 - 声明关键字:float32、float64,不显示声明的小数默认类型是 float64。
字符类型 - 无声明关键字,使用 byte 存储。
布尔类型 - 声明关键字:bool,默认值 false。
字符串类型 - 声明关键字:string,默认值空字符串。
派生数据类型
指针(Pointer)、数组(array)、结构体(struct)、管道(Channel)、函数(func)、切片(slice)、接口(interface)、map
有符号整数类型
默认值都为 0。
关键字 | 字节大小 | 数据范围 | 描述 |
int | * | * | 32位系统4个字节,64位系统8个字节 |
int8 | 1 | (-127~128) | |
int16 | 2 | (-32768~32767) | |
int32 | 4 | (-2147483648~2147483647) | |
int64 | 8 | (-9223372036854775808~ 9223372036854775807) | |
rune | 4 | int32 的别名,表示为一个 Unicode 码 |
其中 int 类型为未显示声明整数变量类型的默认类型。
无符号整数类型
默认值都为 0。
关键字 | 字节大小 | 数据范围 | 描述 |
uint | * | * | 32位系统4个字节,64位系统8个字节 |
uint8 | 1 | (0~255) | |
uint16 | 2 | (0~65535) | |
uint32 | 4 | (0~4294967295) | |
uint64 | 8 | (0~18446744073709551615) | |
byte | 1 | (0~255) | unit8 的别名 |
uintptr | * | * | 32位系统4个字节,64位系统8个字节,用于存放指针 |
浮点类型
默认值都为 0。浮点数 = 符号位+指数位+尾数位。
关键字 | 字节大小 | 数据范围 | 描述 |
float32 | 4 | IEEE-754 | |
float64 | 8 | IEEE-754 |
其中 float64 类型为未显示声明整数变量类型的默认类型。
浮点数还包括两种复数数据类型 complex64、complex128,这两种数据类型由两个浮点数表示。
字符类型
没有类型声明关键字,使用 byte 保存单个字符。
布尔类型 bool
1个字节,值范围:true | false,默认 false。
字符串类型 string
GoLang 中字符串是由一组有序的固定长度字符序列组成的。默认值空字符串。
GoLang 语言默认使用 UTF-8 编码。
GoLang 中的字符串内容是不可修改的。
需要使用 “\” 转义的字符有:\\、\t、\r、\n"
原样输出字符内容可使用反引号(``)括起来。