Integer data types are used to store a whole number without decimals, like 35, -50, or 1345000.
The integer data type has two categories:
Tip: The default type for integer is int
. If you do not specify a type, the type will be int
.
Signed integers, declared with one of the int
keywords, can store both positive and negative values:
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)
}
Try it Yourself »
Go has five keywords/types of signed integers:
Type | Size | Range |
---|---|---|
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 |
Unsigned integers, declared with one of the uint
keywords, can only store non-negative values:
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)
}
Try it Yourself »
Go has five keywords/types of unsigned integers:
Type | Size | Range |
---|---|---|
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 |
The type of integer to choose, depends on the value the variable has to store.
This example will result in an error because 1000 is out of range for int8 (which is from -128 to 127):
package main
import ("fmt")
func main() {
var x int8 = 1000
fmt.Printf("Type: %T, value: %v", x, x)
}
Result:
./prog.go:5:7: constant 1000 overflows int8
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!