Go 整数数据类型
Go 整数数据类型
整数数据类型用于存储没有小数的整数,如 35、-50 或 1345000。
整数数据类型有两类:
- 有符号整数 - 可以存储正值和负值
- 无符号整数 - 只能存储非负值
提示:整数的默认类型是 int
。如果不指定类型,则类型将为 int
。
有符号整数
使用 int
关键字之一声明的有符号整数可以存储正值和负值:
实例
package main import ("fmt") func main() { var x int = 500 var y int = -4500 fmt.Printf("Type: %T, value: %v", x, x) fmt.Printf("Type: %T, value: %v", y, y) }
在 Go 中,有符号整数有五个关键字/类型:
类型 | 大小 | 范围 |
---|---|---|
int |
取决于平台:
|
|
int8 |
8 位/1 字节 | -128 到 127 |
int16 |
16 位/2 字节 | -32768 到 32767 |
int32 |
32 位/4 字节 | -2147483648 到 2147483647 |
int64 |
64 位/8 字节 | -9223372036854775808 到 9223372036854775807 |
无符号整数
无符号整数,使用其中一个 uint
关键字声明,只能存储非负数值:
实例
package main import ("fmt") func main() { var x uint = 500 var y uint = 4500 fmt.Printf("Type: %T, value: %v", x, x) fmt.Printf("Type: %T, value: %v", y, y) }
Go 有五个关键字/类型的无符号整数:
类型 | 大小 | 范围 |
---|---|---|
uint |
在 32 位系统中为 32 位 在 64 位系统中为 64 位 |
在 32 位系统中为 0 到 4294967295 在 64 位系统中为 0 到 18446744073709551615 |
uint8 |
8 位/1 字节 | 0 到 255 |
uint16 |
16 位/2 字节 | 0 到 65535 |
uint32 |
32 位/4 字节 | 0 到 4294967295 |
uint64 |
64 位/8 字节 | 0 到 18446744073709551615 |
应该使用哪种整数类型?
选择哪种整数类型,取决于变量必须存储的值。
实例
此例将导致错误,因为 1000 超出了 int8 的范围(从 -128 到 127):
package main import ("fmt") func main() { var x int8 = 1000 fmt.Printf("Type: %T, value: %v", x, x) }
结果:
./prog.go:5:7: constant 1000 overflows int8