0
点赞
收藏
分享

微信扫一扫

rust 变量绑定与解构

变量绑定与解构 绑定和可变性

1. 变量只有在初始化后才能被使用 // 修复下面代码的错误并尽可能少的修改 fn main() {

let x: i32; // 未初始化,但被使用 let y: i32; // 未初始化,也未被使用 println!("x is equal to {}", x);

}

2. 可以使用 mut 将变量标记为可变 // 完形填空,让代码编译 fn main() {

   let __ = 1;

   __ += 2;

   println!("x = {}", x);

}

变量作用域

3. 作用域是一个变量在程序中能够保持合法的范围

🌟🌟

🌟

🌟

 // 修复下面代码的错误并使用尽可能少的改变 fn main() {

   let x: i32 = 10;

   {

let y: i32 = 5;

println!("x 的值是 {}, y 的值是 {}", x, y); }

println!("x 的值是 {}, y 的值是 {}", x, y); }

4.

 // 修复错误 fn main() {

   println!("{}, world", x);

}

fn define_x() {

   let x = "hello";

}

变量遮蔽( Shadowing )

5. 若后面的变量声明的名称和之前的变量相同,则我们说:第一个变量被第二个同名变量遮蔽了( shadowing )

🌟🌟

🌟🌟


 // 只允许修改 `assert_eq!` 来让 `println!` 工作(在终端输出 `42`) fn main() {

   let x: i32 = 5;

   {

let x = 12;

       assert_eq!(x, 5);

   }

   assert_eq!(x, 12);

let x = 42;

println!("{}", x); // 输 出 "42". }

6. 修改一行代码以通过编译

 fn main() {

let mut x: i32 = 1; x = 7;

// 遮蔽且再次绑定 let x = x;

x += 3;

let y = 4;

// 遮蔽

let y = "I can also be bound to text!";

}

🌟🌟


未使用的变量

7. 使用以下方法来修复编译器输出的 warning : 一种方法

两种方法 注意: 你可以使用两种方法解决,但是它们没有一种是移除 let x = 1 所在的代码行 fn main() {

   let x = 1;

}

// compiler warning: unused variable: `x`

举报

相关推荐

0 条评论