Rust为我们提供了两种类型的常量。这些是-
const-不可更改的值
static-具有静态生存期的可能可变值。
如果我们尝试将另一个值分配给已声明的const值,则编译器将引发错误。
下面显示的示例-
static LANGUAGE: &str = "nhooo-Rust"; const THRESHOLD: i32 = 10; fn is_small(n: i32) -> bool { n < THRESHOLD } fn main() { //错误!无法修改const。 THRESHOLD = 5; println!("一切正常!"); }
在上面的代码中,我们试图修改已经用const关键字声明的变量的值,这是不允许的。
输出结果
error[E0070]: invalid left-hand side of assignment --> src/main.rs:12:15 | 12| THRESHOLD = 5; | --------- ^ | | | cannot assign to this expression
我们还可以访问在其他函数中声明的常量。
下面显示的示例-
static LANGUAGE: &str = "nhooo-Rust"; const THRESHOLD: i32 = 11; fn is_small(n: i32) -> bool { n < THRESHOLD } fn main() { let n = 19; println!("This is {}", LANGUAGE); println!("The threshold is {}", THRESHOLD); println!("{} is {}", n, if is_small(n) { "small" } else { "big" }); }
输出结果
This is nhooo-Rust The threshold is 11 19 is big