go数据类型

基础类型

类型 说明 取值范围 备注
bool 布尔型 true/false 可以用fmt.Printf("%t", true)格式化输出
int8/16/32/64 有符号定长整型 \(-2^{n-1} \sim 2^{n-1}-1\) 采用补码表示,且位运算符>>代表算术右移
uint8/16/32/64 无符号定长整型 \(0 \sim 2^n-1\)
int 有符号整型 最小32位,一般来说在32位系统中占4字节,在64位系统中占8字节 因为int一般是当前硬件中性能最高的整型,所以默认的整型字面值常量就是int类型的
uint 无符号整型 最小32位,一般来说在32位系统中占4字节,在64位系统中占8字节
byte 字节类型 \(0 \sim 255\) uint8的同义词,用于更清晰地表示一个字节
rune rune类型 \(-2^{31} \sim 2^{31}-1\) int32的同义词,用于更清晰地表示一个unicode码
uintptr 足够容纳指针的值的整型,用于底层编程
float32 32位浮点型
float64 64位浮点型 单精度浮点型的精度一般都不够,并且现代处理器处理双精度浮点型可能更快,所以默认的浮点型字面值常量就是float64类型的

字符串类型

类型 说明 备注
string 字符串类型 在go中,字符串类型string是不可修改的字节序列,默认表示utf-8编码的字符串

派生类型

类型 说明 默认值 备注
*T 指针类型 nil go语言有指针但不允许指针运算,因为内存对象由gc管理
[N]T 数组类型 N个元素均为默认值 数组传参的时候会复制整个数组,效率低
type T struct 结构体类型 成员变量均为默认值
chan T 通道类型 nil go协程之间通信的管道
func(args) results 函数类型 nil
[]T 切片类型 nil 数组的引用,传参效率高
type T interface 接口类型 nil go语言特性,用来实现多态
map[T1]T2 字典类型 nil

参考资料

原文地址:https://www.cnblogs.com/HachikoT/p/15682972.html