数据类型的出现是为了区分所需内存大小不同的数据。在编程时,我们需要用到大数据结构时才需要申请大内存,这样就可以充分利用内存。在go编程语言中,数据类型用于声明函数和变量。
1. 基本类型
go的基本类型分为3类
序号 | 类型 | 描述 |
---|---|---|
1 | 布尔型 | 布尔型的值只能是常量true或者false。一个简单的例子:var b bool = true |
2 | 数字类型 | 整型int,浮点型float32、float64,Go语言支持整型和浮点型数字,并且原生支持复数,其中位的运算采用补码 |
3 | 字符串类型 | 字符串就是一串固定长度的字符连接起来的字符序列。go语言字符串是由单个字节连接起来的。Go语言字符串的字节使用UTF-8编码标识Unicode文本 |
1.1 布尔类型
序号 | 类型 | 描述 |
---|---|---|
1 | bool | 长度:1字节(8b,8位2进制数),取值范围:true,false(不可用1,0代表true,false) |
注:布尔型无法参与数值运算,也无法与其他类型进行转换。
1.2 数字类型
- 整型与无符号整型
Go语言也有基于架构的类型,例如int、uint和uintptr。
序号 | 类型 | 描述 |
---|---|---|
1 | 8位整型int8/uint8 | 长度:1字节(8b,8位2进制数,2^8);取值范围:-128 ~ 127 / 0 ~ 255(对于有符号数,负数部分:-(2位数/2),0占1个数,正数部分:(2位数/2)- 1,即 -(2^位数/2) ~(2^位数/2)- 1) |
2 | 16位整型int16/uint16 | int16对应C语言中的short型,长度:2字节;取值范围:- 2^16/2 ~ 2^16/2 - 1 / 0 ~ 2^16 - 1 |
3 | 32位整型int32/uint32 | 长度:4字节;取值范围:- 2^32/2 ~ 2^32/2 - 1 / 0 ~ 2^32 - 1 |
4 | 64位整型int64/uint64 | int64对应C语言中的long型,长度:8字节;取值范围:- 2^64/2 ~ 2^64/2 - 1 / 0 ~ 2^64 - 1 |
注:在实际使用中,slice或者map的元素数量等都可以用int来表示。反之&#