Rust 数据类型

Integer 整数类型

Length Signed Unsigned
8-bit i8 u8
16-bit i16 u16
32-bit i32 u32
64-bit i64 u64
128-bit i128 u128
arch isize usize

不同进制的表示

Number literals Example
Decimal 98_222
Hex 0xff
Octal 0o77
Binary 0b1111_0000
Byte (u8 only) b'A'

Floating-Point Types 浮点类型

f64 f32

默认 64位

1
2
3
4
5
fn main() {
let x = 2.0; // f64

let y: f32 = 3.0; // f32
}

数值运算

加、减、乘 同其他语言的一样表示

let floored = 2 / 3; // Results in 0

let remainder = 43 % 5; 取余

Boolean 布尔

bool

true false

The Character 字符

支持 Unicode 字符,可以是各种语言文字和表情符号

1
2
3
4
5
fn main() {
let c = 'z';
let z: char = 'ℤ'; // with explicit type annotation
let heart_eyed_cat = '😻';
}

Tuple 元组

符合数据类型

1
2
3
fn main() {
let tup: (i32, f64, u8) = (500, 6.4, 1);
}

空元组叫做 unit 。 ()

拆解元组

1
2
3
4
5
6
7
fn main() {
let tup = (500, 6.4, 1);

let (x, y, z) = tup;

println!("The value of y is: {y}");
}

读取元组的元素

.

1
2
3
4
5
6
7
8
9
fn main() {
let x: (i32, f64, u8) = (500, 6.4, 1);

let five_hundred = x.0;

let six_point_four = x.1;

let one = x.2;
}

数组

固定长度,索引从0开始,编译时会检查简单的数组越界

1
2
3
fn main() {
let a = [1, 2, 3, 4, 5];
}

制定数据类型和长度:

1
let a: [i32; 5] = [1, 2, 3, 4, 5];

简写:

let a = [3; 5]; 等价于 let a = [3, 3, 3, 3, 3];

enum 枚举

1
2
3
4
5
6
7
8
// 定义:
enum 枚举名 {
variant1,
variant2
}

// 使用枚举:
枚举名::variant

Debug 模式输出枚举

定义枚举的上一行加上 #[derive(Debug)]

实现trait std::fmt::Debug

println!("{:?}", val)