go数据类型

go数据类型

基本类型

类型 说明 占用内存 默认初始值
bool 布尔型 1字节 false
int8/16/32/64 有符号定长整型 1/2/4/8字节 0
uint8/16/32/64 无符号定长整型 1/2/4/8字节 0
int 有符号整型 在32位系统中占4字节,在64位系统中占8字节 0
uint 无符号整型 在32位系统中占4字节,在64位系统中占8字节 0
byte 字节类型 1字节 0
rune 存储unicode字符的类型 4字节 0
uintptr 能够容纳指针的值的整型 在32位系统中占4字节,在64位系统中占8字节 0
float32 单精度浮点型 4字节 0.0
float64 双精度浮点型 8字节 0.0
  • 可以用fmt.Printf("%t", true)格式化输出bool类型变量。
  • int一般是当前硬件中性能最高的整型,所以默认的整型字面值常量就是int类型的。
  • byteuint8是等价的,只是用来更清晰地表明是一个字节,可以存储ASCII字符。
  • runeint32是等价的,用于更清晰地表示一个unicode字符。
  • 单精度浮点型可以表示6-7位十进制精度,比较小,双精度浮点型可以表示15-16位精度,并且现代处理器处理双精度浮点型可能更快,所以默认的浮点型字面值常量就是float64类型的。

字符串类型

类型 说明 默认初始值
string 字符串类型 空字符串""
  • 在go中,字符串类型string是不可修改的字节序列,默认表示utf-8编码的字符串。

派生类型

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

参考资料

posted @ 2021-12-13 13:44  HachikoT  阅读(31)  评论(0编辑  收藏  举报