入坑 rust
变量
rust 变量默认不可变,使用 let 声明,当改变强制改变的时候,rust编译器将报错
fn main() {
let x = 5;
println!(" x = {}", x);
}
通过变量名之前加 mut 来使变量可变
fn main() {
let mut x = 5;
println!("The value of x is: {}", x);
x = 6;
println!("The value of x is: {}", x);
}
常量
使用 const 声明, 绑定到一个名称不允许改变的值
const MAX_POINTS: u32 = 100_000;
与变量的区别:
- 不允许对常量使用 mut:常量不光默认不能变,它总是不能变。
- 声明常量使用 const 关键字而不是 let,而且必须注明值的类型。
- 常量可以在任何作用域声明,包括全局作用域,这在一个值需要被很多部分的代码用到时很有用。
- 最后一个区别是常量只能用于常量表达式,而不能作为函数调用的结果,或任何其他只在运行时计算的值。
数据类型
Rust 有四种基本的标量类型:整型、浮点型、布尔类型和字符类型, Rust 有两个原生的复合类型:元组(tuple)和数组(array)。
元组
元组可以将其他类型组合进一个复合类型的主要方式。
fn main() {
let tup: (i32, f64, u8) = (500, 6.4, 1);
}
tup变量绑定了整个元组,因为元组被认为是一个单独的复合元素。为了从元组中获取单个的值,可以使用模式匹配(pattern matching)来解构(destructure )元组,像这样:
fn main() {
let tup = (500, 6.4, 1);
let (x, y, z) = tup;
println!("The value of y is: {}", y);
}
除了使用模式匹配解构之外,也可以使用点号(.)后跟值的索引来直接访问他们。
数组
另一个获取一个多个值集合的方式是数组(array)。与元组不同,数组中的每个元素的类型必须相同。Rust 中的数组与一些其他语言中的数组不同,因为 Rust 中的数组是固定长度的:一旦声明,他们的长度不能增长或缩小。
Rust 中数组的值位于中括号中的逗号分隔的列表中:
fn main() {
let a = [1, 2, 3, 4, 5];
}