Rust 是一门什么样的编程语言?
rust 没有垃圾回收器,它用创造性的设计来做到内存安全、让代码远离无效的内存访问,也可以轻易进行多线程开发;
rust 几乎没有 runtime ,使得它可以轻易与其它代码结合,也胜任嵌入式、 WebAssembly 等特殊环境;
rust 以“零开销抽象”为设计目标,保持充分的代码抽象能力同时做到极优秀的性能表现;
rust 巧妙综合了一部分面向对象和一部分函数式编程的特征,拥有很强的抽象表达能力,可维护性上佳。
我自然也经历过这样的过程。我是从 2018 年初开始实际编写 rust 代码的,第一个可用的项目是一个游戏:
https://github.com/LastLeaf/ludum-dare-42
我也做了其他各种各样的实践。因而我想将我的各种实际经验分享出来,组合成这一系列文章。
基于此目的,这一系列文章会更偏向于从实际经验来表述,而不像普通书本一样逐个罗列各个语言特性。比如,我会更常使用“这种时候可以这样写”这种实用的表述,而不是“综合使用这个和另一个特性”这种更抽象而精确的表述。期待后者的话,我觉得官方的教程书做的已经非常好了:
https://doc.rust-lang.org/book/
Rust 有一个安装工具 `rustup` :
安装好之后,有几个命令将可用:
rustc 是 rust 主编译器,事实上我们一般不会直接调用它;
cargo 是 rust 的包管理器(类似于 JavaScript 的 NPM ),一般通过它来间接调用 rustc ;
还有 rustdoc 文档工具等,大多也是通过 cargo 来间接调用。
Hello world!
Rust 的 Hello world 程序很简单(你甚至不用自己编写!),执行:
cargo new my-hello-world
就会在 my-hello-world 子目录中包含一段 hello world 代码的 rust 项目。
进入这个子目录后,执行:
cargo run
就会自动编译+运行这个 hello world 代码。下一章我们就从这个 hello world 项目开始吧!