---
title: "Rust 语言技术中阶"
date: 2018-12-29
lastmod: 2020-01-05
weight: 2
type: 
icon: #
description: "Rust 语言技术中阶"
# search related keywords
---

- 错误处理
  - 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各种参数的作用和配置
  - 开发中大型项目的特性支持