go语言支持丰富的数据类型:
18个基本类型:bool, string, rune, byte, int, uint, int8, uint8, int16, uint16, int32, uint32, int64, uint64, float32, float64, complex64, complex128
7个复合类型:array, struct, function, interface, slice, map, channel
其中,切片、字典、通道类型都是引用类型
整数类型
整数类型有如下几种,这些整数都是有符号的类型,它们的无符号版本是类型名前面添加u,例如uint32。
类型 | 长度 |
---|---|
int8 | 1字节 |
int16 | 2字节 |
int32 | 4字节 |
int64 | 8字节 |
除此以外,还有比较特殊的几种类型。
类型 | 长度 | 备注 |
---|---|---|
byte | 1字节 | 是int8的别名 相当于C语言中的char |
int | 和系统有关 | 有符号整数 |
uint | 和系统有关 | 无符号整数 |
uintptr | 和系统有关 | 指针类型 |
rune | 4字节 | 是int32的别名,代表Unicode代码点 |
浮点型
浮点型变量分为:float32 float64两种 相当于C语言的float和double
类型 | 长度 |
---|---|
float32 | 4字节 |
float64 | 8字节 |
布尔型
布尔类型表示逻辑的真和假 取值为 true false 相对于C语言的1和0
前三种类型详见代码:
package main import "fmt" func main() { //整形变量 var a int = 10;//var a uint = 10; 无符号整形变量 fmt.Println(a); //浮点型变量 分为float32 和 float64 相当于C语言的float和double var b float32 =123.456; fmt.Println(b); //布尔型变量 bool数据类型有两个取值 true 1 和 flase 0 var c bool = false; fmt.Println(c); }
字符串类型
go语言字符串类型为string 相当于 C语言中char[]和char*
这里面主要做了简单的操作,后面会写专门的一章针对字符串处理
package main import "fmt" func main() { var str1 string = "老铁"; fmt.Println("str1 =",str1); var str2 string = "双击666"; fmt.Println("str2 =",str2); //字符串拼接 var str3 string = str1 + str2; fmt.Println("str3 =",str3); //字符串比较 fmt.Println("字符串比较结果:",str1==str2); }打印结果为: