Go 整数数据类型
Go 整数数据类型
整数数据类型用于存储不带小数的整数,例如 35、-50 或 1345000。
整数数据类型有两种类别:
- 有符号整数 - 可以存储正数和负数
- 无符号整数 - 只能存储非负数
提示:整数的默认类型是 int
。如果未指定类型,则类型将为 int
。
有符号整数
有符号整数,使用 int
关键字之一声明,可以存储正数和负数。
示例
package main
import ("fmt")
func main() {
var x int = 500
var y int = -4500
fmt.Printf("类型: %T, 值: %v", x, x)
fmt.Printf("类型: %T, 值: %v", y, y)
}
自己动手试一试 »
Go 有五种有符号整数关键字/类型:
类型 | 大小 | 范围 |
---|---|---|
int |
取决于平台 32 位系统上为 32 位, 64 位系统上为 64 位。 |
在 32 位系统上为 -2147483648 到 2147483647, 在 64 位系统上为 -9223372036854775808 到 9223372036854775807。 |
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("类型: %T, 值: %v", x, x)
fmt.Printf("类型: %T, 值: %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("类型: %T, 值: %v", x, x)
}
结果
./prog.go:5:7: 常量 1000 溢出了 int8
自己动手试一试 »