Golang基础——数据类型
五、数据类型
不同的数据类型占不同的空间,声明一个类型的变量告诉编译器以多大的内存空间来存储这个数据。
1 bool类型
1 bool类型:只有两个值:true 和 false
2 bool类型,不支持强制类型转换:bool(1)
var a bool
a = true
a = false
var b = true
c := false
d := (1==2) // false
2 整型
int :有符号整型,10,-10;32位电脑:占4位,64位电脑:占8位。默认整型的类型。
uint : 无符号整型,只能表示正数
int32:占4位。4 * 8 = 32
int8, int16, int64
2 浮点型
双精度:float64 // 精确到小数 15 位,浮点型的默认类型。
单精度:float32 // 精确到小数 6 位
x := 1.123456789123456789
var y float32 = 1.123456789
fmt.Println(x, y)
结果:
1.1234567891234568 1.1234568
3 字符
单引号:字符
双引号:字符串
一个汉字字符占 3个字节
转义字符:
\n :换行符
\t :制表符
\0 :字符串末尾的字符,字符串结束的标志
c := 'c'
fmt.Println(c)
fmt.Printf("%c", c)
fmt.Printf("%c", 97) // 直接数字,找到对应ASCII表的字符
结果:
99
c
a
var d byte = 'd'
fmt.Printf("%T", d)
结果:
uint8
// %c :格式化字符
// 99 为 字符 c 的 ASCII码
// byte uint8 是一个类型,var d uint8 = 'd' // 也是可以的
4 字符串string:
单引号:字符
双引号:字符串
var str1 string
str1 := "123jfjdsj"
// 字符串字符个数,不包含 \0
len(str1)
// 字符串拼接
str3 := str1 + str2
// 取某个字符
str[1]
5 字符和字符串的区别
1 字符和字符串是两种不同类型
2 单引号:字符;双引号:字符串
3 字符一个字符,字符串一个或多个字符
4 字符串有隐藏的 \0 结束符
6 复数类型
complex64 和 complex128(默认)
t := 3 + 4i
fmt.Println(t)
fmt.Printf("%T\n", t)
fmt.Println(real(t), imag(t)) // 内建函数
结果:
(3+4i)
complex128
3 4