Rust 是 静态类型(statically typed)语言,也就是说在编译时就必须知道所有变量的类型,基本类型如下
整型
整数 是一个没有小数部分的数字
长度 | 有符号 | 无符号 |
---|---|---|
8-bit | i8 | u8 |
16-bit | i16 | u16 |
32-bit | i32 | u32 |
64-bit | i64 | u64 |
128-bit | i128 | u128 |
arch | isize | usize |
浮点型
两个原生的 浮点数(floating-point numbers)类型,它们是带小数点的数字。 所有浮点数均为有符号数
Rust 的浮点数类型是 f32 和 f64,分别占 32 位和 64 位。默认类型是 f64
rust
let x = 2.0; // f64
let y: f32 = 3.0; // f32
布尔型
Rust 中的布尔类型有两个可能的值:true 和 false。Rust 中的布尔类型使用 bool 表示
rust
let t = true;
let f: bool = false;
字符类型
char 类型是语言中最原生的字母类型,用单引号声明 char 字面量,而与之相反的是,使用双引号声明字符串字面量
rust
let c = 'z';
let z: char = 'ℤ';
元组类型
元组是一个将多个其他类型的值组合进一个复合类型的主要方式。
- 元组长度固定:一旦声明,其长度不会增大或缩小。
- 使用包含在圆括号中的逗号分隔的值列表来创建一个元组。
- 元组中的每一个位置都有一个类型,而且这些不同值的类型也不必是相同的。
- 不带任何值的元组有个特殊的名称,叫做 单元(unit) 元组
rust
let tup: (i32, f64, u8) = (500, 6.4, 1);
let tup = (500, 6.4, 1);
let (x, y, z) = tup;
可以使用点号(.)后跟值的索引来直接访问它们
rust
let x: (i32, f64, u8) = (500, 6.4, 1);
let five_hundred = x.0;
let six_point_four = x.1;
let one = x.2;
数组类型
一个包含多个值的方式是 数组(array)。
- 数组中的每个元素的类型必须相同
- Rust 中的数组长度是固定的
- 数组的值写成在方括号内,用逗号分隔
- 数组是可以在栈 (stack) 上分配的已知固定大小的单个内存块
rust
let a = [1, 2, 3, 4, 5];
let a: [i32; 5] = [1, 2, 3, 4, 5]; // i32 是每个元素的类型。分号之后,数字 5 表明该数组包含五个元素
let a = [3; 5]; //变量名为 a 的数组将包含 5 个元素,这些元素的值最初都将被设置为 3。这种写法与 let a = [3, 3, 3, 3, 3];