Rust 数据类型
2020-03-17 本文已影响0人
kaiv2
数据类型
let num: i32; // 明确类型
let num = 10; // 推导出 num 为 i32 类型
rust
是静态类型语言,所有变量在编译时都需要明确类型。
整型
长度 | 无符号 | 有符号 |
---|---|---|
8-bit | u8 | i8 |
16-bit | u16 | i16 |
32-bit | u32 | i32 |
64-bit | u64 | i64 |
128-bit | u128 | i128 |
arch | usize | isize |
数字字面值
数字字面值 | 例子 |
---|---|
Decimal(10进制) | 100_000 |
Hex(16进制) | 0xff |
Octal(8进制) | 0o77 |
Binary(2进制) | 0b1111_0000 |
Byte (u8 only) |
b'a' |
整型数据溢出
整型数据溢出时,在debug
模式下会触发panic
。
浮点型
f32
,f64
数值运算
+
,-
,*
,/
,%
let a = 1 + 1;
let b = 1 - 1;
let c = 1 * 1;
let d = 1 / 1;
let f = 1 % 1;
布尔型
bool
,布尔型的取值只有两种true
和false
。
字符类型
char
单引号的字符
let c: char = 'a';
let c = '👌';
复合类型
将多个值组合成一个类型,数组或元组
元组类型
let tup: (i32, f32,char) = (1, 32.0, 'a');
let (a, b, c) = tup;
println!("{}", c);
println!("{}", tup.2);
数组类型
let arr = [1, 2, 3, 4, 5]; // 数组类型声明后长度固定
let arr:[i32; 5] = [1, 2, 3, 4, 5];
let a = arr[0];
无效的数组元素访问,会在运行时出错退出
let arr = [1, 2];
let a = arr[10]; // 编译时错误
let index = 10;
let a = arr[index]; // 运行时错误