为了账号安全,请及时绑定邮箱和手机立即绑定

🦀 绝佳的 Rust 编程语言全面教程 🚀

注:这个标题符合中文的口语习惯,并且通俗易懂地传达了原文的意思。

如果你喜欢这篇帖子,可以在我的YouTube频道订阅我哦,点击这里

🦀 终极 Rust 编程语言大教程 🚀

这份指南旨在让你成为Rust专家,无论你是初学者还是希望深入了解高级特性。我们将涵盖Rust的各个方面,从基础知识到高级并发、内存管理、Web开发等方面。

星号星号星号

🌟 为什么要学 Rust?

Rust 因其独特性而脱颖而出:

  1. 无需垃圾回收的内存安全: Rust 在编译时防止空指针解引用和数据竞争。
  2. 高性能: 编译为本地代码,使其与 C/C++ 一样快。
  3. 并发支持: 确保线程安全,使多线程编程变得简单。
  4. 广泛的生态系统:嵌入式系统WebAssembly(WebAssembly),Rust 的适用性非常广泛。
  5. 日益增长的社区: 受到了 Mozilla、Amazon 和 Microsoft 等大型组织的支持。

此处省略部分内容

🛠️ 搭建 Rust 环境

安装 Rust

  1. 使用 rustup(跨平台安装程序)下载和安装 Rust:

运行以下命令以安装 Rust 编译器:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

此命令将从 Rust 官方站点下载并安装 Rust 工具链。

全屏模式;退出全屏

试试这个步骤:将它添加到您的环境变量中,然后继续后续操作。

从这里获取 来源 $HOME/.cargo/env 环境变量.

全屏模式\n退出全屏

  1. 检查安装。

运行以下命令来查看 Rust 编译器和 Cargo 构建工具的版本信息:

rustc --version
cargo --version

全屏模式 退出全屏

……

🌱 第一章:Rust 的基础知识

我们先从 Rust 的基本概念说起。

🔤 1.1 变量和常量

  • 不可变的值(默认情况下):
      let x = 5;
      println!("x: {}", x);  
      // x = 10; // 错误:无法重新给 x 赋值
      // 注释:这里的 x 是不可变的,无法再次赋值

全屏 (全屏模式)
退出全屏 (全屏模式)

  • 可变的变量:

让 y 等于 10,然后将 5 加到 y 上,最后打印出 y 的值。

点击进入全屏 点击退出全屏

  • 常量:
    (或者根据上下文可以使用“一些常量:”或“这里的常量:”)
      const PI: f64 = 3.14159265359;  
      println!("PI 的值是:{}", PI);

点击全屏,点击退出全屏

……

📚 1.2 Rust中的数据类型

Rust 拥有一个静态类型系统,支持显式和隐式的类型。

  • 标量数据类型:

  • 整型: i8, i32, u64
  • 浮点数: f32, f64
  • 布尔型: bool
  • 字符型: char
  • 复合类型:

  • 元组示例:
// 定义一个元组tup
let tup = (500, 6.4, 'R');
// 解构元组
let (x, y, z) = tup;
// 打印变量x, y, z的值
println!("x: {}, y: {}, z: {}", x, y, z);
  • 数组(Arrays):
let arr = [1, 2, 3, 4, 5];
println!("数组的第一个元素: {}", arr[0]); // println! 是用于输出到控制台的宏

……

🔗 第二章:所有权、借用和生命周期管理

Rust 的 所有权模型 是其内存安全的基石。

2.1 所有权规定

  1. 每个 Rust 值都有一个所有者。
  2. 一个值在同一时刻只能有一个所有者。
  3. 当所有者超出作用域时,该值就会被丢弃。
fn main() {
    let s = String::from("hello");
    takes_ownership(s);  // s在这里就失效了
    // s在这里就失效了
}

fn takes_ownership(s: String) {  // 获取所有权
    println!("{}", s);
}

切换到全屏 退出全屏

2.2 借用与引用

借用允许多次引用而不转移所有权。

// 主函数,演示字符串长度打印
fn main() {
    let s = String::from("hello");
    print_length(&s);
    println!("仍然有效:{}", s);
}

fn print_length(s: &String) {
    println!("长度是:{}", s.len());
}

全屏 退出全屏

🔒 第2.3节 可变的引用

Rust 一次只能有一个可变引用。

在主函数中,我们将创建一个可变字符串s,并初始化它为 "hello"。然后调用change函数来更新字符串。最后,我们打印更新后的字符串。change 函数接收一个可变引用,然后向字符串末尾添加 ", world!"。

全屏进入,全屏退出

🔗 2.4 寿命

生命周期管理防止悬空引用。

    fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
        if x.len() > y.len() { x } else { y }
    }
    fn main() {
        let s1 = "long string";
        let s2 = "short";
        println!("最长的字符串是: {}", longest(s1, s2));
    }

切换到全屏,退出全屏

……

📈 第三章:高级概念

🔄 第3.1部分 模式匹配

Rust 的 match 是一个非常强大的特性:

    fn main() {
        let number = 6;
        match number {
            1 => 打印!("一"),
            2..=5 => 打印!("在二和五之间"),
            _ => 打印!("其他东西"),
        }
    }

点击此处全屏查看 点击此处退出全屏

此处省略

🔧 3.2 错误管理

  • 展开结果:
      fn divide(x: i32, y: i32) -> Result<i32, String> {
          if y == 0 {
              Err(String::from("不能除以零"))
          } else {
              Ok(x / y)
          }
      }
      fn main() {
          match divide(10, 2) {
              Ok(res) => println!("结果是: {}", res),
              Err(e) => println!("出错了: {}", e),
          }
      }

全屏模式 退出全屏

...

🕸️ 第四章:Rust里的并行处理

4.1 线程

Rust的线程具有内存安全性,

    use std::thread;

    fn main() {
        let handle = thread::spawn(|| {
            for i in 1..10 {
                println!("线程: {}", i);
            }
        });

        handle.join().unwrap();
    }

进入全屏模式/退出全屏模式


🌐 第五章:真实的 Rust 项目案例

🚀 5.1 创建一个命令行程序

让我们来构建一个简单的命令行工具,用来数文件里的单词

    use std::env;
    use std::fs;

    fn main() {
        let args: Vec<String> = env::args().collect();
        let filename = &args[1];
        let content = fs::read_to_string(filename).unwrap();
        let word_count = content.split_whitespace().count();
        println!("单词数: {}", word_count);
    }

切换到全屏模式,回到正常模式


🛠️ 5.2 做 Web 开发 with Rocket

使用Rust的Rocket框架来构建网页应用再合适不过了:

    #[macro_use] extern crate rocket;

    #[get("/")]
    fn 首页() -> &'static str {
        "你好,世界!"
    }

    fn main() {
        rocket::ignite().mount("/", routes![首页]).launch();
    }

全屏模式,或者退出全屏?


📜 附赠:Rust 学习路线
  1. 理解所有权和借用。
  2. 掌握 Rust 标准库的使用。
  3. 学习并发与异步编程。
  4. 探索框架(如 Rocket、Actix 等)。
  5. 为开源项目贡献力量。

这份指南只是个开始。Rust 是一种强大的语言,会随着你的成长而变得更强大。继续练习,构建项目,深入探索 Rust 生态系统吧。祝你编码愉快,开心编程!🦀✨

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消