数据类型
Rust 是静态编译(statically typed)语言,在编译时必须知道所有变量的类型
两类数据类型子集:标量(scalar)和复合(compound)
基于使用的值,编译器通常能够推断出它的具体类型
但如果可能的类型比较多(例如把 String 转为整数的 parse 方法),就必须添加类型的标注,否则编译会报错
标量类型
一个标量类型代表一个单个的值
Rust 有四个主要的标量类型:整数类型、浮点类型、布尔类型、字符类型
整数类型
i32 是默认的整型
整数类型没有小数部分
例如 u32 就是一个无符号的整数类型,占据32位的空间
无符号整数类型以 u 开头
有符号整数类型以 i 开头
Rust 的整数类型列表如图:
每种都分 i 和 u,以及固定的位数
有符号范围:-(2n - 1) 到 2n-1 - 1
无符号范围:0 到 2n - 1
其中 n是指数据类型的大小。(上面表格里的第一列)
整型 i8 ,能够存储的最小值为 -(2^(8-1)) = -128。最大值为(2^(8-1)-1) = 127
isize 和 usize 类型
isize 和 usize 类型的位数由程序运行的计算机的架构所决定:如果是64位计算机,那就是64位
使用 isize 或 usize 的主要场景是对某种集合进行索引操作
整数字面值
除了 byte 类型外,所有的数值字面值都允许使用类型后缀。例如:57u8