Rust 语言技术

高校俱乐部

关注“高校俱乐部”微信公众号,回复“路线图”,快人一步获取高清全套技术路线图


初阶

  • 基础语法
    • 常量、变量、绑定
      • let关键字
      • mut修饰符
      • const修饰符
    • 语句与表达式
      • 语句和表达式的区别
      • 行末的分号
    • 循环语句
      • loop
      • while
      • for
      • break
      • loop label
    • 条件判断语句
      • if
      • else
      • else if
    • 基本运算符
      • 算术运算符
      • 逻辑运算符
      • 位移运算符
    • 函数与闭包
      • fn关键字
      • 函数参数的写法
      • 函数的返回值
      • 闭包
      • 闭包的参数和返回值
    • match表达式
      • match的语法和分支
      • 默认分支
  • 数据类型
    • 基础数据类型
      • 数字类型
        • 有符号数类型
          • i8/i16/i32/i64/i128/isize
        • 无符号数类型
          • u8/u16/u32/u64/u128/usize
        • 浮点数类型
          • f32/f64
      • 布尔类型
        • bool
      • 字符类型
        • char
      • 数组类型
        • []
      • range类型
        • range()
      • slice类型
        • 内存切片
      • str类型
        • 静态字符串
      • String类型
        • 动态字符串
    • 复合数据类型
      • 元组()
      • 结构体struct
      • 枚举enum
      • union
    • 集合类型
      • Vector
      • HashMap
      • HashSet
  • 模式匹配
    • match基本形式
    • match+enum实现分支处理
    • if let
    • while let
    • 函数参数中的模式匹配
  • module组织
    • 多模块文件的组织
    • 多模块文件的引入和路径寻址
    • pub
      • 模块供外部访问的部分的导出修饰符
  • cargo包管理系统
    • cargo的基本使用
    • 外部crate的引入和使用
  • 打印、调试与输入输出
    • println!
    • debug!
    • std::io
    • io::stdin()
    • io::stdout()
  • 文件操作
    • std::fs
    • 文件的增删改查
    • 目录的操作
  • 注释
    • 行注释
    • 块注释
    • 文档型注释
    • 文档型注释中的markdown支持
    • 文档型注释中的代码测试支持

中阶

  • 错误处理
    • Rust中错误处理的基本方法
    • Result与Option
    • match表达式用于错误处理
    • 用于错误处理的?号
    • 错误抛出的路径和处理的时机
  • trait特征
    • trait的基本功能
    • 将trait实现在类型上
    • 孤儿规则
  • 运算符的重载
    • 支持重载的运算符及其对应的trait
  • 泛型
    • 泛型的基本概念
    • Rust中泛型的形式
    • 多泛型
    • PhantomData
    • 静态分发与动态分发
  • 引用与指针
    • &、Box
  • 智能指针
    • Cow
    • Rc、Arc
    • Weak
    • Cell、RefCell
  • 更多类型
    • never类型
    • BtreeMap
    • BtreeSet
    • VecDeque
    • LinkedList
    • BinaryHeap
  • 类型转换
    • as
    • Deref
    • From和Into
  • 所有权系统
    • 所有权的概念
    • 所有权的创建和转移
    • 所有权在Rust中的重要意义
  • Borrow Checker
    • 借用检查器的概念
    • 借用检查器的运行原理
    • 借用的操作和数据的访问
    • 不可变借用和可变借用
    • 借用的传递
  • Lifetime
    • 生命周期的概念
    • Rust中生命周期的表示
    • 生命周期的分析方法
  • 迭代器
    • 迭代器的基本概念
    • 迭代器的优势
    • Rust标准库中常见的迭代器类型和使用方法
    • 实现自己的迭代器
  • 标准库中的常用trait
    • Display
    • Clone
    • Debug
    • Eq
    • PartialEq
  • 多线程开发
    • Rust多线程的语法
    • 使用channel在多线程中交互数据
    • 多线程中的共享数据问题
  • async异步开发
    • 同步和异步的概念
    • Future的基本概念
    • async/await关键字的使用
    • tokio runtime的基本使用
      • tokio
    • task任务操作
  • Rust设计模式
    • 构建器模式
    • newtype模式
  • 宏的使用
    • 声明宏
      • 过程宏
      • 属性宏
      • 类函数宏
    • 派生宏
  • 网络编程
    • tcp编程
      • tokio::net的使用
    • udp编程
      • tokio::net的使用
    • http编程
      • hyper库的使用
  • cargo工程配置
    • cargo各种参数的作用和配置
    • 开发中大型项目的特性支持

高阶

  • 原始指针
    • 原始指针
      • *const*mut
    • 原始指针与其它引用和指针类型的转换
    • 原始指针在标准库中出现的使用函数
  • unsafe Rust
    • unsafe关键字
    • safe Rust与unsafe Rust
    • unsafe Rust与C的安全性区别
    • unsafe Rust的意义
  • 高级trait
    • 关联类型
    • 关联常量
    • trait中的泛型
  • 高级lifetime
    • 多生命周期
    • 生命周期的依赖
  • 函数式编程风格
    • 标准库中的一套方法
      • map、fold、filter、then等
    • 链式写法
    • 函数式编程中的副作用
  • Rust设计模式(扩展)
    • 工厂模式
    • OOP模式
    • 状态机模式
  • Rust FFI开发
    • 从C库中导入函数
    • 使用Rust为其它语言写函数库
    • Rust与C++交互开发
    • Rust与动态语言交互开发
  • 安全并发
    • Send与Sync
    • 锁的使用分析
    • 无锁数据结构
    • 高性能并发编程
      • rayon、crossbeam库等
  • 内存布局
    • Rust中数据结构的内存布局
    • Rust内存布局与C的区别
  • 宏开发
    • 自己动手写declare macro
    • 自动动手写procedure macro
  • 元编程
    • build.rs构建期编程
    • 使用过程宏实现编译期代码操作
    • 类型反射相关
      • Any、downcast
  • 解析器开发
    • 解析器的重要意义
    • Rust为何适合用来写解析器
    • nom解析器快速开发
      • nom
    • 序列化库
      • serde
  • 异步编程Poll模式开发
    • 深刻理解Future
      • Reactor、Waker、Executor
    • 学习Future的Poll状态机开发模式
      • Context
    • Pin
      • Pin相关知识点
    • Poll开发模式需要注意的一些点
  • Rust与Wasm开发
    • WebAssembly介绍
    • Rust为何适合用来开发wasm应用
    • 其它语言开发wasm应用的对比
    • Wasm-bindgen