常见问题


01-安装

讲清 Rust 安装、PATH、工具链与常用组件的最小上手问题。

02-更新与版本管理

讲清 Rust 工具链更新、锁版本、channel 与团队协作的关键问题。

03-编译

讲清 Cargo 编译流程、profile、feature、target 与常见编译诊断。

04-运行

讲清 cargo run、参数传递、环境变量、回溯与进程退出码等运行期问题。

05-注释与文档

讲清 Rust 注释、文档注释、doctest 与 rustdoc 的核心用法。

06-变量与可变性

讲清 Rust 变量绑定、可变性、遮蔽、初始化与借用边界。

07-常量与静态量

讲清 Rust 的 const、static、const fn 与全局状态的基本边界。

08-数据类型

讲清 Rust 常见数据类型、类型边界与 Go 程序员最常踩的类型坑。

09-函数

面向熟悉 Go 的读者讲清 Rust 函数签名、返回值、所有权、泛型与可调用对象差异

10-控制流

面向熟悉 Go 的开发者系统讲清 Rust 的 if、match、循环、标签与提前返回

11-所有权

面向 Go 初学者讲清 move、Copy、Clone、Drop 与所有权流转

12-引用与借用

面向熟悉 Go 的读者讲清引用、可变借用、冲突与 NLL

13-切片

面向熟悉 Go 的读者讲清切片视图、胖指针、UTF-8 边界与参数选型

14-字符串与文本

从 Go 视角讲清 String、&str、UTF-8、字符遍历与路径字符串

15-内存与分配

用 Go 对比讲清栈堆、分配、容量、Box 与泄漏

16-结构体

面向 Go 程序员讲清结构体定义、方法、更新语法与所有权影响

17-枚举

从 Go 的 tagged union 心智差异出发讲清 Rust 枚举、Option、Result 与变体数据

18-模式匹配

围绕 match、if let、模式绑定与穷尽性,讲清 Rust 模式匹配的工程直觉

19-常见集合

围绕 Vec、HashMap、HashSet 与 collect(),讲清 Rust 常见集合与 Go 直觉差异

20-迭代器与闭包

讲清惰性迭代器、collect()、三种 iter、闭包捕获与 Fn 家族

21-错误处理

面向 Go 初学者讲清 Rust 错误值、错误传播与 panic 的边界

22-包、Crate 与模块

面向 Go 用户讲清 package、crate、module、可见性和 workspace 的边界

23-Cargo 工作流

面向 Go 用户讲清 Cargo 的日常命令、锁文件、feature、workspace 与发布流程

24-测试

面向 Go 用户讲清 Rust 单元/集成/文档测试、断言、cargo test 过滤与表驱动写法

25-泛型

面向 Go 用户重写 Rust 泛型:边界、单态化、impl Trait 与 const 泛型

26-Trait

面向 Go 用户重写 trait:定义、实现、孤儿规则、dyn Trait 与对象安全

27-生命周期

面向 Go 用户重写生命周期:借用关系、'static、省略规则与常见报错

28-智能指针

面向 Go 用户重写智能指针:Box、Rc、Arc、RefCell、Weak、Pin 与常见组合

29-并发与线程

面向 Go 用户重写并发与线程:spawn、channel、锁、Arc、Send/Sync 与作用域线程

30-高级函数与闭包

面向 Go 初学 Rust 的高级函数与闭包入门,讲透 Fn 家族、返回闭包和回调设计

31-异步编程

面向 Go 开发者讲清 Rust async、future、executor 与常见跨 await 报错

32-宏

面向 Go 开发者讲清 Rust 宏、macro_rules!、过程宏、卫生性与常见误区

33-高级 Trait

面向 Go 开发者讲清 Rust 高级 Trait:关联类型、GAT、trait object 与稳定性边界

34-高级类型

面向 Go 开发者讲清 Rust 高级类型:newtype、DST、never、PhantomData、ATPIT 与 TAIT

35-Unsafe Rust

面向 Go 开发者讲清 Unsafe Rust、UB、FFI、裸指针与安全抽象边界

36-Serde 与序列化

面向 Go 用户讲清 serde/serde_json 与 encoding/json 的 derive、标签、Option 与错误对照

37-文件系统、Path 与 IO

面向 Go 用户讲清 Path/PathBuf、读写文件、缓冲 IO、OpenOptions 与 ErrorKind 对照

38-命令行与 clap

面向 Go 用户讲清 clap 解析参数、子命令、校验退出与 feature 选型

39-日志与 tracing

面向 Go 用户讲清 log/tracing、RUST_LOG、subscriber 与结构化日志

40-HTTP 客户端与服务端

面向 Go 用户讲清 reqwest/axum 客户端与服务端、路由 State 与优雅关停

41-时间与日期

面向 Go 用户讲清 Instant/SystemTime/Duration、chrono 日历与时区

42-正则表达式

面向 Go 用户讲清 regex crate、编译复用、捕获替换、与 RE2/字符串 API 分工

43-数据库与 SQL

面向 Go 用户讲清 Rust 无 std SQL、sqlx/diesel/SeaORM 选型、池事务迁移与防注入

44-配置管理

面向 Go 用户讲清 env/文件/默认值分层、serde 读配置、figment 与 clap 覆盖顺序

45-gRPC 与 Protobuf

面向 Go 用户讲清 tonic/prost、build.rs 生成、unary 与流式、Status 与 proto 兼容

46-密码学与哈希

面向 Go 用户讲清 Rust 密码学选型、哈希/密码哈希、随机数、AES-GCM/HMAC 与密钥存放

47-WebAssembly

面向 Go 用户讲清 Rust WASM 目标、bindgen、体积优化、WASI 与浏览器/wasmtime 边界

48-缓存与 Redis

面向 Go 用户讲清进程内缓存、Redis 连接、TTL 穿透击穿、序列化锁与二级缓存

49-部署与 Docker

面向 Go 用户讲清 Rust 二进制部署、多阶段 Docker、镜像底座、健康检查与 CI 缓存

50-TCP/UDP 与套接字

面向 Go 用户讲清 std::net / tokio::net 的 TCP UDP、超时半关闭与并发 accept

51-性能剖析与基准

面向 Go 用户讲清 criterion、flamegraph、samply/perf 与 tokio-console 对标 pprof

52-HTTP 进阶与实时通信

面向 Go 用户讲清 CORS、Cookie、multipart、WebSocket/SSE、限流与 tower-http

53-消息队列与事件流

面向 Go 用户讲清 Kafka/NATS/RabbitMQ 选型、消费循环、重试死信与背压

54-可观测性:指标与 OTel

面向 Go 用户讲清 Prometheus 指标、/metrics、tracing 分工与 OpenTelemetry

最后修改 August 11, 2026: 更新 (70a5af133)