基础数据类型

Go 语言数据类型包含基础类型和复合类型两大类.

  • 基础数据类型包括:布尔型,整型,浮点型,复数型,字符型,字符串型,错误类型.

  • 复合数据类型包括:指针,数组,切片,字典,通道,结构体,接口.

整形

  • 有符号整型:int8、int16、int32、int64、int。
  • 无符号整型:uint8、uint16、uint32、uint64、uint。

浮点型

  • float32 的精度只能提供大约 6 个十进制数(表示小数点后 6 位)的精度。
  • float64 的精度能提供大约 15 个十进制数(表示小数点后 15 位)的精度。

float32的有效bit位只有23个,其它的bit位用于指数和符号;当整数大于23bit能表达的范围时,float32的表示将出现误差.

复数

Go语言提供了两种精度的复数类型:complex64和complex128,分别对应float32和float64两种浮点数精度。

1
2
3
4
5
6
7
var x complex128 = complex(1, 2) // 1+2i
var y complex128 = complex(3, 4) // 3+4i
fmt.Println(x*y) // "(-5+10i)"
fmt.Println(real(x*y)) // "-5"
fmt.Println(imag(x*y)) // "10"
fmt.Println(1i * 1i) // "(-1+0i)", i^2 = -1
fmt.Println(cmplx.Sqrt(-1)) // "(0+1i)"

布尔型、字符串

布尔型同c++

但是布尔值并不会隐式转换为数字值0或1

1
2
3
4
5
6
7
8
9
10
11
12
var s1 string
s1 = "abcd"
s2 := "1234"


//多行字符串
var s1 string
s1 = `
adsas
sdddsds
`
fmt.Println(s1)

字符

byte 1 表示 UTF-8 字符串的单个字节的值,表示的是 ASCII 码表中的一个字符,uint8 的别名类型
rune 4 表示单个 unicode 字符,int32 的别名类型