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
自己動手試一試 »