rust练习实践

2026/1/30
https://practice-zh.course.rs/variables.html

//1
// 修复下面代码的错误并尽可能少的修改
fn main() {
    let x: i32 = 1; // 未初始化,但被使用
    let _y: i32; // 未初始化,也未被使用
    println!("x is equal to {}", x); 
}

//2
// 完形填空,让代码编译
fn main() {
    let mut x = 1;
    x += 2; 
    
    println!("x = {}", x); 
}


//3
// 修复下面代码的错误并使用尽可能少的改变
fn main() {
    let x: i32 = 10;
    let y:i32 = 1;
    {
        let y: i32 = 5;
        println!("x 的值是 {}, y 的值是 {}", x, y);
    }
    println!("x 的值是 {}, y 的值是 {}", x, y); 
}


//4
// 修复错误
fn main() {
    define_x();
     
}

fn define_x() {
    let x = "hello";
    println!("{}, world", x);
}

//5
// 只允许修改 `assert_eq!` 来让 `println!` 工作(在终端输出 `42`)
fn main() {
    let x: i32 = 5;
    {
        let x = 12;
        assert_eq!(x, 12);
    }

    assert_eq!(x, 5);

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


//6
fn main() {
    let mut x: i32 = 1;
    x = 7;
    // 遮蔽且再次绑定
    let mut x = x; 
    x += 3;


    let y = 4;
    // 遮蔽
    let y = "I can also be bound to text!"; 
}

//7.1
fn main() {
    let _x = 1; 
}
//7.2

//8
// 修复下面代码的错误并尽可能少的修改
fn main() {
    let (mut x, y) = (1, 2);
    x += 2;

    assert_eq!(x, 3);
    assert_eq!(y, 2);
}


//9
fn main() {
    let (x, y);
    (x,..) = (3, 4);
    [.., y] = [1, 2];
    // 填空,让代码工作
    assert_eq!([x,y], [3,2]);
} 

复盘

[allow(unused_variables)]

posted @ 2026-01-31 00:09  RightDo  阅读(3)  评论(0)    收藏  举报