GO语言中的数据类型
数据类型的出现是为了把数据分成所需内存大小不同的数据,不同类型的数据占用的内存空间是不一样的。
GO语言中的数据类型大类可以分为:数值类型,字符串类型和布尔型。其中,数值类型又可以进行详细的分类。
- 数值类型
- 整型
- 浮点型
- 复数
- 字符串类型
- 布尔型
1 数值型有哪些子类型?
1.1 整型的数据类型可以分为以下几个子类:
子类型 | 描述 |
---|---|
uint8 | 无符号的8位整型(1字节) |
uint16 | 无符号的16位整型(2字节) |
uint32 | 无符号的32位整型(4字节) |
uint64 | 无符号的64位整型(8字节) |
int8 | 有符号8位整型 |
int16 | 有符号的16位整型 |
int32 | 有符号32位整型 |
int64 | 有符号64位整型 |
由上表的整型类型的数据类型分析可以总结出以下几点:
- 有符号和无符号的整型主要通过是否有
u
开头区分,不带u
的情况是有符号的。
1.2 浮点和复数型可以分为以下几个子类
子类型 | 描述 |
---|---|
float32 | 32位浮点数 |
float64 | 64位浮点数 |
complex64 | 32位实数和虚数 |
complex128 | 64位实数和虚数 |
1.3 其他还有一些数据类型
子类型 | 描述 |
---|---|
byte | 类似于uint8 |
rune | 类似于int32 |
uint | 32或者64位 |
int | 与uint大小一样 |
uintptr | 无符号证书,用于存放一个指针 |
1.4 数值类型的变量默认取值
值类型中整型和浮点型变量的默认取值都是0
复数类型变量的默认取值是(0+0i)
2 字符串类型
字符串类型为string
,统一编码为“UTF-8”
字符串类型的默认值为空字符串,而不是nil ,这一点需要注意。
3 布尔值
布尔值类型为bool
,的变量只能取值为常量true或者false。例如:
var a bool = true
布尔型变量的默认取值为: false
。
4 类型别名
很多语言都可以通过关键字为一些变量取一个简单有趣的别名,GO语言中的这个功能是通过type
关键字来实现的。例如:type newtype int32
,表示将int32 别名为newtype
。之后就可以直接使用newtype来对变量进行类型实例化。
注意:
一旦为一个类型设置别名,并对别名进行了使用的变量后,就和原来的数据类型变量不一致了。两个类型的变量不能进行运算。仅代表这两种变量类型所占的内存大小相同而已。