在 Go 編程語言中,數據類型用於聲明函數和變量。數據類型的出現是爲了把數據分成所需內存大小不同的數據,編程的時候需要用大數據的時候才需要申請大內存,就可以充分利用內存。Go 語言的數據類型總體分爲以下4類:
序號 | 類型和描述 |
---|---|
1 | 布爾型:布爾型的值只可以是常量 true 或者 false。一個簡單的例子:var b bool = true。 |
2 | 數字類型:Go 語言支持整型和浮點型數字(整型 int 和浮點型 float32、float64),並且支持複數。 |
3 | 字符串類型:字符串就是一串固定長度的字符連接起來的字符序列。Go 的字符串是由單個字節連接起來的。Go 語言的字符串的字節使用 UTF-8 編碼標識 Unicode 文本。 |
4 | 派生類型:
|
其中,整形又可細分爲:
序號 | 類型和描述 |
---|---|
1 | uint8:無符號 8 位整型 (0 到 255) |
2 | uint16:無符號 16 位整型 (0 到 65535) |
3 | uint32:無符號 32 位整型 (0 到 4294967295) |
4 | uint64:無符號 64 位整型 (0 到 18446744073709551615) |
5 | int8:有符號 8 位整型 (-128 到 127) |
6 | int16:有符號 16 位整型 (-32768 到 32767) |
7 | int32:有符號 32 位整型 (-2147483648 到 2147483647) |
8 | int64:有符號 64 位整型 (-9223372036854775808 到 9223372036854775807) |
它們的表示範圍還可以通過編程的方式打印出來:
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.MinInt8, math.MaxInt8)
fmt.Println(math.MinInt16, math.MaxInt16)
fmt.Println(math.MinInt32, math.MaxInt32)
fmt.Println(math.MinInt64, math.MaxInt64)
fmt.Println(math.MaxUint8)
fmt.Println(math.MaxUint16)
fmt.Println(math.MaxUint32)
fmt.Println(math.MaxFloat32)
fmt.Println(math.MaxFloat64)
}
運行結果:
浮點型又可細分爲:
序號 | 類型和描述 |
---|---|
1 | float32:32位浮點型數 |
2 | float64:64位浮點型數 |
3 | complex64:32 位實數和虛數 |
4 | complex128:64 位實數和虛數 |
其他數字類型還包括:
序號 | 類型和描述 |
---|---|
1 | byte:類似 uint8 |
2 | rune:類似 int32 |
3 | uint:32 或 64 位 |
4 | int:與 uint 一樣大小 |
5 | uintptr:無符號整型,用於存放一個指針 |