《Rust编程入门》附录A:Rust语言参考

本附录提供 Rust 编程语言的核心概念、语法规则和功能的简明概述,旨在为开发者提供快速查阅的参考工具。

附录A:Rust 语言参考

本附录提供 Rust 编程语言的核心概念、语法规则和功能的简明概述,旨在为开发者提供快速查阅的参考工具。


1. 基本语法规则

1.1 变量声明

  • 不可变变量(默认):
    let x = 5; // x 是不可变的
    
  • 可变变量:
    let mut y = 10; // y 是可变的
    y = 20;
    

1.2 常量

  • 定义常量必须指定类型,并且生命周期为整个程序:
    const MAX_POINTS: u32 = 100_000;
    

1.3 数据类型

  • 标量类型:整型、浮点型、布尔型、字符型。

    let integer: i32 = -10;
    let float: f64 = 3.14;
    let boolean: bool = true;
    let character: char = 'A';
    
  • 复合类型:元组和数组。

    let tuple: (i32, f64, char) = (42, 3.14, 'R');
    let array: [i32; 5] = [1, 2, 3, 4, 5];
    

2. 所有权与借用

2.1 所有权规则

  1. 每个值有且仅有一个所有者。
  2. 当所有者离开作用域时,值会被自动释放。
  • 移动:

    let s1 = String::from("hello");
    let s2 = s1; // s1 被移动,s1 不再可用
    
  • 克隆:

    let s1 = String::from("hello");
    let s2 = s1.clone(); // 深拷贝,s1 和 s2 都可用
    

2.2 借用与引用

  • 不可变引用:

    let s = String::from("hello");
    let len = calculate_length(&s); // 不可变借用
    
  • 可变引用:

    let mut s = String::from("hello");
    change(&mut s); // 可变借用
    

3. 控制流

3.1 条件判断

  • if 语句:
    if x > 0 {
        println!("Positive");
    } else {
        println!("Negative or Zero");
    }
    

3.2 循环

  • 无限循环:

    loop {
        println!("Running...");
    }
    
  • 带条件循环:

    while x > 0 {
        x -= 1;
    }
    
  • 迭代循环:

    for i in 1..=5 {
        println!("{}", i);
    }
    

3.3 模式匹配

  • match 语句:
    match value {
        1 => println!("One"),
        2 => println!("Two"),
        _ => println!("Other"),
    }
    

4. 函数与闭包

4.1 函数

  • 定义函数:
    fn add(a: i32, b: i32) -> i32 {
        a + b
    }
    

4.2 闭包

  • 定义闭包:
    let add = |a, b| a + b;
    let result = add(5, 3);
    

5. 集合与迭代器

5.1 常用集合

  • 向量(Vec):

    let mut v = Vec::new();
    v.push(1);
    
  • 哈希映射(HashMap):

    use std::collections::HashMap;
    let mut map = HashMap::new();
    map.insert("key", "value");
    

5.2 迭代器

  • 创建迭代器:
    let nums = vec![1, 2, 3];
    for num in nums.iter() {
        println!("{}", num);
    }
    

6. 错误处理

6.1 Result 枚举

  • 定义与使用:
    let result: Result<i32, &str> = Ok(10);
    match result {
        Ok(val) => println!("Value: {}", val),
        Err(err) => println!("Error: {}", err),
    }
    

6.2 Option 枚举

  • 定义与使用:
    let some_value: Option<i32> = Some(42);
    if let Some(val) = some_value {
        println!("Value: {}", val);
    }
    

7. 并发与多线程

7.1 创建线程

  • 使用 std::thread:
    use std::thread;
    thread::spawn(|| {
        println!("Hello from another thread!");
    });
    

7.2 消息传递

  • 使用 mpsc:
    use std::sync::mpsc;
    let (tx, rx) = mpsc::channel();
    tx.send("Hello").unwrap();
    println!("{}", rx.recv().unwrap());
    

8. 常用工具

8.1 Cargo

  • 创建新项目:

    cargo new project_name
    
  • 运行项目:

    cargo run
    
  • 添加依赖:
    编辑 Cargo.toml 文件:

    [dependencies]
    rand = "0.8"
    

8.2 clippy

  • 安装:

    rustup component add clippy
    
  • 运行:

    cargo clippy
    

9. 参考资料

通过本附录,开发者可以快速定位 Rust 语言核心概念与语法,希望本参考资料能为您的开发旅程提供帮助!

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页