精通Rust(第2版)(etc.)

书: https://pan.baidu.com/s/1XseSeFJwB_CgmZqmU5-_rQ?pwd=gb4u
笔记如下:

  1. “Rust的核心创新是所有权系统,通过编译时检查消除数据竞争,无需垃圾回收。”
  2. “生命周期标注(’a)是Rust独有的概念,确保引用有效性而不牺牲性能。”
  3. “trait是Rust的多态基石,可比作接口,但支持默认实现和关联类型。”
  4. “模式匹配(match)的穷尽性检查,让逻辑处理不可能遗漏边界情况。”
  5. “Result和Option枚举强制错误处理,unwrap()是新手陷阱,应使用模式匹配或?运算符。”
  6. “零成本抽象:Rust的高层特性(如迭代器)在编译后与手写底层代码效率相同。”
  7. “并发安全的秘密:Send和Sync trait标记类型是否可跨线程传递/共享。”
  8. “宏(macro_rules!)提供元编程能力,但过程宏(proc-macro)才是生产级工具。”
  9. “unsafe代码是逃逸舱,允许绕过编译器检查,但必须人工证明安全性。”
  10. “Cargo不仅是包管理器,还统一了构建、测试、文档生成和依赖管理。”
  11. “智能指针(Box/Rc/Arc)在堆上分配数据,分别对应独占/引用计数/原子引用计数所有权。”
  12. “迭代器适配器(map/filter)是函数式风格的体现,惰性求值提升性能。”
  13. “模块系统(mod)通过可见性(pub)控制封装,use简化路径引用。”
  14. “Pin类型解决自引用结构体移动问题,是异步编程的关键保障。”
  15. “async/await语法糖将Future状态机转化为线性代码,但运行时需选择执行器(tokio/async-std)。”
  16. “裸指针(const/mut)只能在不安全块中使用,是FFI交互的必要工具。”
  17. “泛型约束(where T: Trait)提升代码可读性,特化(specialization)允许不同实现。”
  18. “测试文化深入语言设计:#[test]标记单元测试,bench标记性能测试,doc-tests验证文档示例。”
  19. “Rust的错误处理哲学:可恢复错误用Result,不可恢复错误用panic!+崩溃。”
  20. “Rust的学习曲线陡峭,但回报是:编译通过的代码通常就是正确且高效的。”

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注