变量 Variables

常见的声明变量的表达式, 使用 let 来声明, 格式如下:

let name: type = expr;

这里, type 代表变量的类型, 大部分情况可以直接省去不写, 编译器会根据上下文自动推定. expr 是一个表达式, 使用该表达式的值来初始化变量, 也可以省去, 在之后再初始化该变量.

#[allow(unused_variables)]
fn main() {
    let x: i32 = 42;
    let is_clicked = false;
    let scale_factor = 1.2;
    let range = (1, 4);
    let name = "Shawn";
    let c_path = c"PATH=/usr/bin:/usr/local/bin";
    let char_a = 'a';
}

变量默认不可更改

这个特性跟 C/C++ 有很大的不同, 在 C/C++ 中声明的变量, 默认都是可以修改它的值的, 除非显式地声明为只读:

int x = 42;
x += 1;
assert(x == 43);

而 Rust 中的变量默认是不可更改的, 除非加上 mut 修饰符, 显式地声明为可更改的:

#![allow(unused)]
fn main() {
let mut x = 42;
x += 1;
assert_eq!(x, 43);

let y = 42;
// 下面的表达式会编译失败.
// y += 1;
}