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 |
Depends on platform: 32 bits in 32 bit systems and 64 bit in 64 bit systems |
-2147483648 to 2147483647 in 32 bit systems and -9223372036854775808 to 9223372036854775807 in 64 bit systems |
int8 |
8 bits/1 byte | -128 to 127 |
int16 |
16 bits/2 byte | -32768 to 32767 |
int32 |
32 bits/4 byte | -2147483648 to 2147483647 |
int64 |
64 bits/8 byte | -9223372036854775808 to 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 |
Depends on platform: 32 bits in 32 bit systems and 64 bit in 64 bit systems |
0 to 4294967295 in 32 bit systems and 0 to 18446744073709551615 in 64 bit systems |
uint8 |
8 bits/1 byte | 0 to 255 |
uint16 |
16 bits/2 byte | 0 to 65535 |
uint32 |
32 bits/4 byte | 0 to 4294967295 |
uint64 |
64 bits/8 byte | 0 to 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
亲自试一试 »