布尔类型
布尔类型的类型标识符是bool
,它的值只能为: true
(真)、false
(假),其默认值为false
。
// 声明isSunday为bool类型,默认值为 false
var isSunday bool
// 声明isSaturday变量,并赋值为true
var isSaturday bool = true
// 类型推导模式:
var isSaturday = true
// 可以缩写为
isSaturday := true
数值类型
数值类型就是用来表示数字的,例如整数、小数等。
整型
类型 | 描述 | 取值范围 |
---|---|---|
uint8 | 无符号 8 位整型 | (0 to 255) |
uint16 | 无符号 16 位整型 | (0 to 65535) |
uint32 | 无符号 32 位整型 | (0 to 4294967295) |
uint64 | 无符号 64 位整型 | (0 to 18446744073709551615) |
int8 | 有符号 8 位整型 | (-128 to 127) |
int16 | 有符号 16 位整型 | (-32768 to 32767) |
int32 | 有符号 32 位整型 | (-2147483648 to 2147483647) |
int64 | 有符号 64 位整型 | (-9223372036854775808 to 9223372036854775807) |
整型
是用来存在整数的类型。
这里的符号就是数值的正
负
。通俗来说,无符号就是用于存储大于等于0
的数值,有符号类型就是区分数值的正
负
,可以存正值也可以存负值。
取值范围,就是可以存储的值的范围,在声明变量时,可以根据变量需要存储的值的范围,选择合适的类型。
类型 | 描述 | 取值范围 |
---|---|---|
uint | 无符号整型,在32位系统上是uint32,64位系统上市uint64 | 同uint32或uint64 |
int | 有符号整型,在32位系统上是int32,64位系统上市int64 | 同int32或int64 |
byte | uint8的别名 | - |
rune | int32的别名 | - |
uintptr | 无符号整型,用于存储指针 | - |
uint和int的取值范围,取决于所运行的操作系统位数。
浮点型
类型 | 描述 | 取值范围 |
---|---|---|
float32 | 32位浮点型 | 1.4e-45~3.4e38 |
float64 | 64位浮点型 | 4.9e-324~1.8e308 |
浮点型,通俗来讲,就是程序中用于存储带小数点的值。
复数
类型 | 描述 |
---|---|
complex64 | 32 位实数和虚数 |
complex128 | 64 位实数和虚数 |
z := 1 + 2i
x := real(z)
y := imag(z)
fmt.Println(x, y) // 1, 2
字符串
字符串是一连串的字符组成的片段。
// 单行字符串
var s1 string = ""
// 多行字符串
var s2 string = `
多行
字符串
`
// 多段字符串拼接
var s3 string = "Hello" + " " + "world !"
类型转换
数值类型互转,直接使用变量类型强制转换,确保转换后的值在新的类型的取值范围内。
var n1 int16 = 100
var n2 int32 = int32(n1)
int
转字符串
:
var n1 int = 10
var s1 string = strconv.Itoa(n1) // "10"
字符串
转int
:
var s2 string = "100"
var n2, e = strconv.Atoi(s2) // n2 = 100,如果字符串不是纯数值,则返回错误e
int64
转字符串
:
var n1 int64 = 10
var s1 string = strconv.FormatInt(n1, 10)
字符串
转int64
:
var s2 string = "100"
var n2, e = strconv.ParseInt(s2, 10, 64)