go 支持的数据类型
bool 类型
数字类型
有符号整型
无符号整型
浮点型
复数类型
- //bool 类型
- //bool 表示布尔值, 值为 true 或者 false
- func booltest() {
- x :=true
- y :=false
- fmt.Println("x",x,"y",y)
- }
输出: x true y false
数字类型分为: 有符号整型, 无符号整型,
有符号整型
int 8 表示 8 位 有符号整型
范围 -128~127
int 16 表示 16 位有符号整型
说值范围 -32768~32767
int32 表示 32 位有符号整型
范围 -2147483648~2147483647
int64 表示 64 位有符号整型
-9223372036854775808~9223372036854775807
int 根据不同底层平台, 表示 32 位或者 64 位整型 , 除非对整型大小有特定对的需求
在 32 位系统是 32 位, 64 位系统是 64 位
无符号整型
unit8:
数值范围: 0-255
unit16:
数值范围: 0-65535
unit32
数值范围: 0~4294967295
unit64:
数值范围: 0~18446744073709551615
unit: 根据不同的底层平台, 32 位系统是 32 位, 64 位系统是 64 位
- var x1 int =67
- y1 :=88
- fmt.Println("value of x1 is",x1 ,"y1 is",y1)
- var x2 int = 110
- y2 :=78
- fmt.Println("x2 is", x2,"y2 is",y2)
- // go 的格式化输出 , 常用的
- // %T 输出 Go 语言语法格式的类型和值
- // %d 整型以十进制方式显示
- // %v 按值的本来值输出
- fmt.Printf("type os x2 is %T,size of x2 is %d",x2,unsafe.Sizeof(x2))
- fmt.Printf("\ntype os y2 is %T,size of y2 is %d",y2,unsafe.Sizeof(y2))
输出:
- value of x1 is 67 y1 is 88
- x2 is 110 y2 is 78
- type os x2 is int,size of x2 is 8 # 说明平台是 64 位操作系统
- type os y2 is int,size of y2 is 8
- // 浮点型
float32: 32 位浮点型
float64: 64 位浮点数
- x3 ,y3 := 18.44, 9.43
- fmt.Printf("type of x3 %T y3 %T\n",x3,y3)
- sum := x3 + y3
- jian := x3 - y3
- fmt.Println("sum is",sum,"xiang jian is",jian)
输出:
- type of x3 float64 y3 float64
- sum is 27.87 xiang jian is 9.010000000000002
字符串类型
- one :="zhangsan"
- two :="lisi"
- three :="wangwu"
- all_name := one + two + three
- fmt.Println("all nam connect is",all_name)
输出
- all nam connect is zhangsanlisiwangwu
- }
复数类型
complex64: 实部和虚部都是 float32 类型的的复数.
complex128: 实部和虚部都是 float64 类型的的复数.
类型转换
go 语言没有自动类型提升或者类型转换
- a :=32
- b :=45.3
- sum := a + b
- fmt.Println(sum)
输出报错:
bao cuo src/20190104 / 类型 1.go:128:11: invalid operation: a + b (mismatched types int and float64)
类型转换
- a1 :=32
- b1 :=45.3
- sum := a1 + int(b1)
- fmt.Println(sum)
输出 77
来源: http://www.bubuko.com/infodetail-3365252.html