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

亲自试一试 »