布尔类型

布尔类型的类型标识符是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)