https://avatars.githubusercontent.com/u/18242685

lihuu's blog

第 7 章:上一章的痛苦体验过了吗?

所有权系统逼着你转移来转移去,烦死了是不是?

别慌,Rust 不是变态,它是完美主义者。既然给了你世界上最严格的内存管理,自然也要给你最优雅的解决方案。

这就是借用系统——让你在不失去所有权的前提下,优雅地使用数据。

是时候让你见识真正的 Rust 魔法了。

从笨拙到优雅:一个华丽转身

之前的笨拙做法

// 上一章的垃圾代码
fn calculate_length(s: String) -> (String, usize) {
    let length = s.len();
    (s, length)  // 还要把所有权还回去,麻烦死了
}

这种代码写起来想死是不是?

第 6 章:准备好被虐了吗?

前面那些都是开胃菜。现在,真正的 Rust 来了。

所有权系统 —— 这就是 Rust 区别于其他一切语言的核心武器。它不是一个"功能",不是一个"库",而是一套不容违反的物理定律

编译器就是执法官,你就是嫌疑人。

内存管理:三种境界

在我们开始之前,先上一堂"内存管理哲学课":

第 5 章:class 在哪里?

这是每个 Java 程序员学 Rust 问的第一个问题。

答案很残酷:Rust 没有 class。

但先别慌,Rust 不是退步,而是进化。它要用一种更优雅、更安全、更灵活的方式来重新定义"对象"。

你准备好抛弃那些陈旧的面向对象思维了吗?

思维革命:数据与行为的分离

Java 教会了我们什么?数据和行为必须绑定在一个 class 里。

第 4 章:还在写 `for (int i = 0; i < 10; i++)`?

住手!你这样写了多少年烂代码了?

别以为控制流就是把 iffor 从 Java 搬到 Rust。那点语法糖解决不了你的根本问题:你的思维还停留在上世纪。

Rust 的控制流要重新定义你对"控制"这个概念的理解。准备好接受降维打击了吗?

核心革命:从语句到表达式

第一课:忘掉你学过的一切。

在 Java 里,if 是个语句。语句就是"执行一个动作,然后什么都不返回"。想用 if 做赋值?要么用那个丑陋的三元运算符 condition ? a : b,要么写一堆冗余代码。

第 3 章:还在用 `int` 走天下?醒醒吧!

已经玩过变量声明了,现在该面对现实了:你那些"万能"的 intString 在 Rust 面前就是个笑话。

别以为换个语言就是换个语法糖。Rust 的类型系统要重新刷新你对"数据"这个概念的认知。准备好被虐了吗?

标量类型:精确到令人发指

Java 程序员最大的坏习惯是什么?类型选择恐惧症的反面——什么都用 int

第 2 章:还在为变量赋值这点小事纠结?

在上一章里,我们已经见识了 Rust 的第一次"暴击"——没有 GC 却能保证内存安全。现在,准备好迎接第二次冲击吧。

你以为变量声明是最简单的事情?在 Java 里确实如此:int x = 5; 然后想怎么改就怎么改。但在 Rust 的世界里,连声明个变量都要重新学习

这不是 Rust 在故意为难你,而是它在用最基础的语法特性,向你传递一个颠覆性的编程哲学。

第 1 章:停!别再写那千篇一律的 CRUD 了。

你是不是又在 IntelliJ IDEA 里敲着熟悉的 @RestController,配置着又一个 Spring Boot 项目?你是不是觉得自己已经是 Java 大神了——熟练掌握 JVM 调优,玩转各种设计模式,Lambda 表达式信手拈来?

醒醒吧,朋友。

现实世界远比你想象的残酷。当你的系统在高并发下因为 GC 停顿而丢失订单时,当你的微服务因为内存泄漏而频繁重启时,当你为了那点性能优化而绞尽脑汁时——你就会发现,Java 这个"温暖的舒适区"其实是个美丽的陷阱。

第 15 章:未来之路——Rust 生态圈漫游指南与持续学习

朋友,恭喜你!你已经走完了一段非凡的旅程。从最初对“没有 GC 的内存安全”感到好奇,到亲手征服所有权、借用、生命周期;从体验“无畏并发”的自信,到构建出第一个高性能的 Web 服务。你已经完成了从一位资深 Java 开发者到一位有能力使用 Rust 解决实际问题的程序员的转变。

这不仅是技术的学习,更是一次深刻的思维模式的“换轨”——你已经从习惯于依赖运行时(Runtime)的垃圾回收器,转变为能够在编译期(Compile-time)就向编译器证明程序的正确性。