Skip to content

About

Go learn Rust (the verb, not Golang).

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

去学 Rust (持续更新ing)

CI

这个仓库记录 Rust 的渐进式学习过程,内容从基础语法、所有权和生命周期,逐步延伸到异步运行时、Future、Waker 与自定义定时器。

示例按照编号排列。相邻文件通常只引入一个新概念,适合依次阅读并对照运行结果。

内容概览

目录或文件 内容
01_Base 变量、函数、控制流、所有权、结构体、枚举、集合、模块、错误处理、泛型、trait、生命周期、闭包与迭代器
02_Asynchronous 同步、多线程、async/.await、Future::poll、Waker 和自定义定时器
next.md 后续学习路线与实践方向
src/main.rs 当前阶段的综合异步示例

学习顺序

1. Rust 基础

从 01_Base/00_test.rs 开始,按照文件编号依次阅读。

其中建议重点理解:

  • 所有权、移动、借用与可变引用;
  • 枚举、模式匹配和错误处理;
  • 泛型、trait 与生命周期;
  • 闭包、迭代器及惰性求值。

2. 异步编程

先阅读 02_Asynchronous/00_Notion.md,然后按照示例编号继续。更完整的原理说明位于 02_Asynchronous/05_Further_Understanding.md。

async_07_custom_future 会一直等待,async_08_waker 会持续自我唤醒。这两个示例用于观察 Poll::Pending 和 Waker,不会自行结束,运行后需要按 Ctrl+C 停止。

环境要求

  • Rust stable,支持 Rust 2024 Edition;
  • Cargo;
  • Tokio 1.x(由 Cargo 自动安装)。

查看本机版本:

rustc --version
cargo --version

获取并检查项目

git clone https://github.com/QwQBiG/Go-learn-Rust.git
Set-Location -LiteralPath ".\Go-learn-Rust"
cargo check --all-targets
cargo test --all-targets

运行示例

运行当前综合示例:

cargo run

运行某个基础章节:

cargo run --example base_04_ownership
cargo run --example base_12_lifetimes

运行某个异步章节:

cargo run --example async_01_sync
cargo run --example async_04_async
cargo run --example async_10_final

查看所有可运行目标:

cargo metadata --no-deps --format-version 1

项目约定

  • 文件名前的编号代表推荐学习顺序。
  • 示例优先保持概念清晰,不追求过早抽象或合并代码。
  • Rust 代码遵循 rustfmt 的主体格式;行尾说明采用 代码 // 注释 的形式。
  • 文本文件统一使用 UTF-8 编码和 LF 换行符。

About

Go learn Rust (the verb, not Golang).

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages