go语言的基本数据类型如下:
布尔类型 bool,其值只有true和false
整型 分为有符号和无符号12种具体类型
类型 | 备注 | |
有符号 | int | 所占用的字节数与运行机器的CPU相关。 |
int8 | 占用一个字节存储(8位),范围是【-128 ~ 127】 | |
int16 | 占用两个字节存储(16位),范围是【-32768 ~ 32767】 | |
int32 | 占用四个字节存储(32位),范围是【-2147483648 ~ 2147483647】 | |
int64 | 占用八个字节存储(64位),范围是【-9223372036854775808 ~ 9223372036854775807】 | |
无符号 | uint | 所占用的字节数与运行机器的CPU相关。 |
uint8 | 占用一个字节存储(即8位),范围是【0 ~ 255】 | |
uint16 | 占用两个字节存储(16位),范围是【0 ~ 65535】 | |
uint32 | 占用四个字节存储(32位),范围是【0 ~ 4294967295】 | |
uint64 | 占用八个字节存储(64位),范围是【0 ~ 18446744073709551615】 | |
uintptr | 一个无符号整数类型,用于存放一个指针 | |
byte | byte类型是uint8的别名 ,范围是【0 ~ 255】 |
浮点型
类型 | 最大值 | 最小值 |
float32 | 3.4028234663852886e+38 | 1.4e-45 |
float64 | 1.7976931348623157e+308 | 4.9e-324 |
浮点数字面量被自动推断为float64
一个float32可以提供大约6~7个十进制精度,而float64可以提供大约15~16个十进制精度,因此优先使用float64类型。
在计算机中很难进行浮点数的精确表示和存储,因此两个浮点数之间不应该使用 == 和 != 进行比较操作。高精度的科学计算可以使用math标准库来完成
复数
Go语言内置了两种复数类型,分别是complex64和complex128。复数在计算机中使用两个浮点数来表示,一个表示实部,另一个表示虚部。其中complex64由两个float32构成,complex128由两个float64构成。复数的字面量表示和数学表示法一致,复数字面量默认类型是complex128。
字符串
Go语言将字符串作为一种原生的基本数据类型,字符串是一个不可修改的数据类型。
byte & rune
Go内置两种字符类型:
一种是byte的字节类型(byte也是uint8的别名)
var byteVal2 byte = 'a'
一种是表示Unicode编码的字符rune。rune在Go的内部是int32类型的别名,占用4个字节。
var runeVal rune = '我'