数据类型分类
基础类型
- 数字
- 字符串
- 布尔型
复合类型
- 数组
- 结构体
引用类型
- 指针
- 切片
- 字典
- 函数
- 通道
接口类型
3.1 整型
有符号整数类型
- int、nt8、int16、int32、int64
- 值域:到
无符号整数类型
- uint、uint8、uint16、uint32、uint64
- 值域:0到
Unicode字符rune类型
- = int32类型,表示一个Unicode码点
byte类型
- = uint8类型,一般用于强调数值是一个原始的数据而不是一个小的整数
无符号整数类型 uintptr
- 没有指定具体的bit大小但足以容纳指针
- 底层编程时需要(如:与C语言函数库或操作系统交互)
运算符
按照优先级递减的顺序排序
操作符 | 备注 |
---|---|
* | 乘法 |
/ | 除法 |
% | 取模 |
<< | 左移 ,该运算等价于乘以 |
>> | 右移,该运算等价于除以 |
& | 位运算 AND(与) 不区分有无符号 |
&^ | 位清空(AND NOT)不区分有无符号 |
+ | 加法 |
- | 减法 |
| | 位运算 OR(或) 不区分有无符号 |
^ | 位运算 XOR(异或) 不区分有无符号 |
== | 等于比较 |
!= | 不等于比较 |
< | 大于 |
<= | 大于等于 |
> | 小于 |
>= | 小于等于 |
&& | 逻辑运算“与” |
|| | 逻辑运算“或” |
3.2 浮点数
float32
- math.MaxFloat32 表示float32能表示的最大数值
float64
- math.MaxFloat64表示float64能表示的最大数值
3.3 复数
complex64
- 对应float32浮点数精度
complex128
- 对应float64浮点数精度
内置函数
complex()
- 用于构建复数
real()
- 返回复数的实部
imag()
- 返回复数的虚部(浮点数面值或十进制整数面值后面加一个i)
math/cmplx 包提供各种函数
3.4 布尔型
布尔类型的值:true、false
- 布尔值不会隐式转换为数字值0或1
3.5 字符串
- 字符串是一个不可改变的字节序列
- 字符串的值是不可变的
字符串面值
- 将一系列字节序列包含在双引号内
- 原生的字符串面值形式:
...
字符串和Byte切片
标准库中的包:
- bytes
- strings:提供字符串的查询、替换、比较、截断、拆分、合并等功能
- strconv:提供布尔型、整数、浮点数和对应字符串的相互转化
- unicode:提供IsDigit、IsLetter、IsUpper和IsLower等功能,用于给字符分类
字符串和数字的转换
- 将整数转为字符串:
- 1)用 fmt.Sprintf 返回一个格式化的字符串
- 2)strconv.Itoa("")
3.6 常量
- 常量表达式的值在编译期计算
- 常量的值不可修改
itoa常量生成器
- 用于生成一组以相似规则初始化的常量
网友评论