data_types
目录
数据类型 data types
Go 有四类数据类型:
- 基本类型:数字、字符串和布尔值
- 聚合类型:数组和结构
- 引用类型:指针、切片、映射、函数和通道
- 接口类型:接口
1 整数数字
int uint int8 uint8 int16 uint16 int32 uint32 int64 uint64
var integer8 int8 = 127
var integer16 int16 = 32767
var integer32 int32 = 2147483647
var integer64 int64 = 9223372036854775807
fmt.Println(integer8, integer16, integer32, integer64)
var integer16 int16 = 127
var integer32 int32 = 32767
var res := integer16 + integer32
invalid operation: integer16 + integer32 (mismatched types int16 and int32)
rune 只是 int32 数据类型的别名, 它用于表示 Unicode 字符
2 浮点数字
float32 float64
var float32 float32 = 2147483647
var float64 float64 = 9223372036854775807
fmt.Println(float32, float64)
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.MaxFloat32, math.MaxFloat64)
}
3 布尔型
bool true false 不能将布尔类型隐式转换为 0 或 1
var flag bool = true
4 字符串
你需要在双引号(")中定义值。 单引号(’)用于单个字符(以及 runes)
var firstName string = "John"
lastName := "Doe"
fmt.Println(firstName, lastName)
4.1 转义字符
\n:新行
\r:回车符
\t:制表符
\':单引号
\":双引号
\\:反斜杠
5 默认值
与在其他编程语言中不同的是,在 Go 中,如果你不对变量初始化,所有数据类型都有默认值。 此功能非常方便,因为在使用之前,你无需检查变量是否已初始化。
int 类型的 0(及其所有子类型,如 int64) float32 和 float64 类型的 +0.000000e+000 bool 类型的 false string 类型的空值
6 类型转换
在 Go 中隐式强制转换不起作用, 需要显式强制转换, Go 提供了将一种数据类型转换为另一种数据类型的一些本机方法。
var integer16 int16 = 127
var integer32 int32 = 32767
fmt.Println(int32(integer16) + integer32)
Go 的另一种转换方法是使用 strconv 包
package main
import (
"fmt"
"strconv"
)
func main() {
i, _ := strconv.Atoi("-42") // alpha to int
s := strconv.Itoa(-42) // int to alpha
fmt.Println(i, s)
}