Rust learning:from germ to grave

Rust learning:from germ to grave

💡 原文中文,约2600字,阅读约需7分钟。
📝

内容提要

Rust官方推荐的三个资料包括The Rust programming language, Rust by examples以及ruslings,适合入门学习。Rust与C++有一些不同,如宏、变量binding、不变性等。Rust的基本类型包括字面量、元组、数组和切片。自定义类型可以使用结构体,枚举类型也是有效的。Rust有两种常量类型:const和static。作为底层语言,Rust、C/C++和Zig等仍在发展,C++2a中有新特性出现。期待后续发展。

🔎

延伸解读

学习路径:官方三件套的定位

作者将官方推荐的三个资料分别类比为字典、上手示例和刷题:The Rust programming language 内容全面,适合查阅;Rust by examples 更易懂,便于快速上手;rustlings 则像刷题,帮助过一遍关键概念。这种组合覆盖了从系统学习到动手实践的环节,对初学者来说,按此顺序推进可以避免一开始就陷入细节。

与 C++ 的关键差异:不变性与变量绑定

文章指出 Rust 默认不可变,不像 C++ 需要到处声明 const。Rust 支持变量遮蔽(shadowing),允许重声明同名变量,而 C++ 不允许。此外,将 mut 值赋给 non-mut 变量后,在该作用域内该变量不能再被改变。这些规则影响代码的编写习惯,从 C++ 转来的开发者需要留意。

基本类型与自定义类型的要点

Rust 的基本类型包括字面量、元组、数组和切片。元组用 () 表示,通过 .num 索引,可用 #[derive(Debug)] 打印。数组长度编译时已知,而切片长度编译时未知,由指针和长度两个字组成,类型为 &[T]。自定义类型可通过结构体(元组结构体、C 风格结构体、单元结构体)和枚举实现,枚举变体可像结构体一样携带数据。

常量的两种形式:const 与 static

Rust 有两种常量,均需显式类型注解:const 是不可变值,最常见;static 则可能可变,拥有 'static 生命周期,且该生命周期是推断的,无需显式指定。访问或修改可变的 static 变量是不安全的。理解这两者的区别有助于在需要全局状态时做出合适选择。

❓

Q&A

Rust学习的推荐资料有哪些?

Rust官方推荐的学习资料包括《The Rust Programming Language》、《Rust by Examples》和ruslings。

Rust与C++的主要区别是什么?

Rust与C++在宏、变量绑定和不变性等方面存在差异,Rust默认不可变,而C++需要声明const。

Rust的基本数据类型有哪些?

Rust的基本类型包括字面量、元组、数组和切片。

如何在Rust中定义自定义类型?

在Rust中,可以使用结构体和枚举来定义自定义类型。

Rust中常量的类型有哪些?

Rust有两种常量类型:const和static,const是不可变的,static可能是可变的。

Rust的未来发展方向是什么?

Rust、C/C++和Zig等底层语言仍在发展中,期待在前端工具构建上的进一步发展。

🏷️

标签

➡️

继续阅读