Rust 从入门到摔门而出门 (一) 变量声明

发布时间 2024-01-08 11:29:44作者: Ferdinand_包子君

###   Rust 从入门到摔门而出门 (一) 变量声明

####   变量声明

fn main() {
// 声明变量 x = 5
let x = 5;
// 修改变量x,此处会报错,变量默认是不可改变的。
// x = 6;
println!("The value of x is: {x}");

// 声明可变变量, 在变量名前添加 mut 来使它变成可变变量。
let mut y = 10;
y = 11;
println!("The value of y is: {y}");
}

  

 

#### 常量

声明常量,值不可被改变。使用 const 关键字声明,不允许使用 mut,必须注明数据值类型

 

fn main() {
// 声明 THREE_HOURS_IN_SECONDS 设置值限制 32比特位的 整数类型
const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3
println!("The value of THREE_HOURS_IN_SECONDS is: {THREE_HOURS_IN_SECONDS}");
}

 

####  隐藏

在rust 中可以变量名相同,后面的变量名会覆盖前面的变量名.

 

fn main() {
let x = 10;
println!("1.输出 x:{x}"); // 10
let x = x + 1;
{
let x = x * 2;
println!("2.输出 x:{x}"); // 22
}
println!("3.输出 x:{x}"); // 11
}

 

let 重新赋值 和 使用 mut 有所不同。第一个y是字符串类型,但是 y.len() 是数字类型,所以会报错提示不能修改变量的数据类型。

fn main() {

let x = "123";
println!("4.输出 x:{x}"); //123
let x = x.len();
println!("5.输出 x:{x}"); // 3

let mut y = "123456";
y= y.len(); //error[E0308]: mismatched types expected `&str`, found `usize`
}

  

let 声明的作用域,

fn main() {
let mut x = 10;
println!("1.输出 x:{x}"); // 10
{
x = 2;
println!("2.输出 x:{x}"); // 2
}
{
let x = 10;
println!("3.输出 x:{x}"); // 10
}

let x = x + 100;
println!("4.输出 x:{x}"); // 102

}