我发现 Go 中有不同的整数类型令人困惑。考虑到许多其他主要编程语言中不存在这些区别,定义这些不同类别的必要性是什么?
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
Go有两种类型:
int
, uint
, uintptr
.和 int32
, int64
等int
是默认的有符号类型:它需要 32 位(4 字节)在 32uint
也是如此. uintptr
是一个足以存储指针值的无符号整数。 int8 (-128 -> 127)
int16 (-32768 -> 32767)
int32 (− 2,147,483,648 -> 2,147,483,647)
int64 (− 9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807)
uint8 (with alias byte, 0 -> 255)
uint16 (0 -> 65,535)
uint32 (0 -> 4,294,967,295)
uint64 (0 -> 18,446,744,073,709,551,615)
float32 (+- 1O-45 -> +- 3.4 * 1038 )
(IEEE-754) float64 (+- 5 * 10-324 -> 1.7 * 10308 )
int
是提供最快处理速度的整数类型。0
,对于浮点数,这是 0.0
float32 可靠地精确到大约 7 个小数位,float64 精确到大约 15 个小数位。==
进行比较,不可能达到完美的精度。或 !=
必须非常小心!
关于types - 为什么 Go 有几种不同的整数类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31266352/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |