Skip to main content

Rust

📅 2026-03-30 ✏️ 2026-03-31 CS
No related notes

1 · Rust#

1.1 · 初识rust#

  1. 性能:没有运行时、没有垃圾回收器
  2. 可靠性:富类型系统、所有权模型,保证内存安全、线程安全,在编译器发现许多问题
  3. 生产力:文档、友好报错信息的编译器、一流的工具
  • 没有运行时?所有特性都是零成本抽象,不会有额外的运行时操作
  • 没有垃圾回收器?RAII,初始化对象即申请内存,对象结束使用则释放内存
  • 所有权模型:保证一个值只能被一个变量拥有(负责释放)
  • 借用:把引用看作借用,分只读、可写,读写互斥;编译期进行引用有效期分析(生命周期)
  • 富类型系统:编译器通过许多trait表达的语义严格检查类型可以做什么
  • 错误处理:Option、Result
  • 函数式特性:迭代器(惰性求值、链式组合)、闭包、高阶函数、默认不可变

类型(数据是什么)、所有权(谁负责资源)、借用(怎么访问数据)、生命周期(数据活多久)、trait(能做什么)

the book: https://doc.rust-lang.org/book the std lib: https://doc.rust-lang.org/std/index.html

1.2 · 错误处理

错误是值。

错误是类型系统的一部分,不可被静默忽略。

错误通过enum实现(库类型Result<T,E>):

  • 穷举:match模式匹配穷举所有错误
  • 传播:?向上传播给调用方
  • 组合:错误集之间需手动转换(From/thiserror/anyhow
  • 信息:E可以是任意类型,携带丰富错误信息
  • 恢复:就地降级(unwrap_or/unwrap_or_default