前言

由于个人原因,主要是为了缓解焦虑,其次掌握一门新的编程语言,扩展视野等,希望未来能有用武之地,所以决定学习一门新的编程语言,这门编程语言就是Rust。

为什么是Rust

Rust是由Mozilla员工“Graydon Hoare”于2006年开发的系统编程语言。他将这种语言描述为支持功能和命令范式的“安全,并发和实用的语言”。 Rust 集表达力、高性能、内存安全于一身,在 1.0 版本发布后不久,口碑就一路高飞猛进,从 16 年起,连续 6 年成为 Stack Overflow 用户评选出来的最受喜爱的语言(2021/3/15 评选结果)。

  1. 性能

    Rust非常快速且内存高效:没有运行时或垃圾收集器,它可以为性能关键型服务提供动力,在嵌入式设备上运行,并且很容易与其他语言集成。

  2. 可靠

    Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全——使您能够在编译时消除许多类别的错误。

  3. 生产率

    Rust 拥有出色的文档、带有有用错误消息的友好编译器以及一流的工具——集成的包管理器和构建工具、具有自动完成和类型检查功能的智能多编辑器支持、自动格式化程序等等

  4. 强大且活跃的社区

  5. 被广泛使用, Google, Microsoft, Firefox, Dropbox, Linux内核等等,都在生产环境上使用了Rust

避免从入门到放弃

Rust 对初学者似乎并不友好,被公认难入门,学习曲线相当陡峭。

避免试一试的心态

Rust 是一门全新的语言,它会带给你前所未有的体验,提升你的通用编程水平,甚至于赋予你全新的编程思想。

在学习Go等编程语言时,你可能会一边工作、一边轻松愉快的学习它们,但是Rust不行。 在学习Rust的同时你会收获很多语言之外的知识, 因此 Rust 在入门阶段比很多编程语言要更难,但是一旦入门,你将收获一个全新的自己,争取成为一个更加优秀的程序员。

在学习过程中,给大家几点建议:

  • 要提前做好会遇到困难的准备,不要抱着试一试的心态去试一试,否则是浪费时间和消耗学习激情。
  • 由简入难,给自己信心
  • 每学习一点新知识,就要去实践一下,不要等到学完了再去实践,否则会忘记。
  • 深入学习官方文档,不要只看一遍,要多看几遍,多思考,多实践。

总之,Rust 入门难,但是在你一次次克服艰难险阻的同时,也一次次收获了与众不同的编程经验, 最后历经九九八十一难,回头看,你会发现,原来自己已经成为了一个更加优秀的程序员。

Good Luck!

安装环境

rustup是工具链管理工具,Rust 由该工具安装和管理,也是官方推荐方式。

如果rustup已安装过,则可以通过运行rustup update来更新您的安装。

安装

我是Mac笔记本,我选择使用brew来安装rustup

其他参考官方安装方式

具体安装方式如下:

1
brew install rustup-init

然后执行

1
rustup-init

顺着流程安装完成之后,重启终端便可以安装好rust环境以及相关的工具链。

可以查看对应rustc以及cargo的版本:

1
rustc -V

rustc 1.72.0 (5680fa18f 2023-08-23)

1
cargo -V

cargo 1.72.0 (103a7ff2e 2023-08-15)

注:若发现版本号不同,以您的版本号为准

更新

  • 更新Rust及工具链

    1
    
    rustup update 
    
  • 更新 rustup

    1
    
    rustup self update
    

卸载

1
rustup self uninstall

开发工具

开发工具有很多种选择,如:VSCodeIntelliJ IDEAVimEmacs等等。

如果你是老手,选择你习惯的编辑器即可。

如果你是新手,推荐你使用VSCode,不需购买授权,不需要破解。安装插件rust-analyzer即可。

强烈新的在你整个编程生涯中熟悉使用一种开发编辑器,一种文本编辑工具,这样可以让你更加专注于编程本身,而不是编辑器的使用。

Hello World开启第一个程序

几乎学习任何一门编程语言,都是以Hello World开始的,咱也不能免俗。

创建个文件夹hello_world,然后创建一个文件main.rs,(此文件是当前 Rust 工程的入口文件) 然后输入如下代码:

1
2
3
fn main() {
    println!("Hello, world!");
}

然后执行如下命令:

1
2
rustc main.rs
./main

会看到如下输出:Hello, world!

恭喜你大功告成了,你已经成功的运行了你的第一个Rust程序。

认识 Cargo

Cargo是什么

Cargo 是Rust 构建工具和包管理器,它可以帮助你编译、测试、运行你的代码,同时也可以管理依赖项(dependencies)。

可以做很多事情:

  • 创建你的项目cargo new
  • 构建你的项目cargo build
  • 运行你的项目cargo run
  • 测试你的项目cargo test
  • 构建项目文档cargo doc
  • 分析并报告错误cargo check
  • 发布你的项目到crates.iocargo publish
  • 还有很多其他功能,慢慢探索吧….

创建项目

1
2
cargo new hello_cargo
cd hello_cargo

运行项目

有两种方式可以运行项目:

  • cargo run

  • 手动编译和运行项目

首先来看看第一种方式:

1
2
3
4
5
cargo run
   Compiling hello_world v0.1.0 (/Users/zhangbo/Desktop/rs/hello_world)
    Finished dev [unoptimized + debuginfo] target(s) in 0.69s
     Running `target/debug/hello_world`
Hello, world!

再来看看第二种方式:

编译项目:

1
2
3
cargo build
   Compiling hello_world v0.1.0 (/Users/zhangbo/Desktop/rs/hello_world)
    Finished dev [unoptimized + debuginfo] target(s) in 0.53s

运行项目:

1
2
./target/debug/hello_world
Hello, world!

./target/debug/world_hello 中有一个 debug 字段,没错我们运行的是 debug 模式, 在这种模式下,代码的编译速度会非常快,可是福兮祸所伏,运行速度就慢了. 原因是, 在 debug 模式下,Rust 编译器不会做任何的优化,只为了尽快的编译完成,让你的开发流程更加顺畅。

debug模式,那就会有release模式,release 模式下,Rust 编译器会做很多优化,比如去掉不必要的检查,使得代码运行的更快。

添加 –release 来编译:

1
2
cargo run --release
cargo build --release

试着运行一下我们高性能的 release 程序:

1
2
$ ./target/release/world_hello
Hello, world!

cargo check

cargo check 是我们在代码开发过程中最常用的命令, 它的作用很简单:快速的检查一下代码能否编译通过。因此该命令速度会非常快,能节省大量的编译时间。

1
2
3
cargo check
    Checking hello_world v0.1.0 (/Users/zhangbo/Desktop/rs/hello_world)
    Finished dev [unoptimized + debuginfo] target(s) in 0.35s

Cargo.toml 和 Cargo.lock

Cargo.toml 和 Cargo.lock 是 cargo 的核心文件。

  • Cargo.toml 是 cargo 特有的项目数据描述文件。它存储了项目的所有元配置信息,如果 Rust 开发者希望 Rust 项目能够按照期望的方式进行构建、测试和运行,

  • 那么,必须按照合理的方式构建 Cargo.toml。

  • Cargo.lock 文件是 cargo 工具根据同一项目的 toml 文件生成的项目依赖详细清单, 因此我们一般不用修改它,只需要对着 Cargo.toml 文件撸就行了。

查找第三方库,请到Rust 官方仓库 crates.io

把使用 Cargo 当作习惯

对于简单项目而言,使用 Cargo 和直接使用 rustc 相比并没有太大的优势,但是在程序变得更加复杂时,它会证明自己的价值。对于拥有多个 crate 的复杂项目,交给 Cargo 来协调构建将简单得多。

程序员要学会提高生产效率,把节省下来的时间,去学习,刷抖音,头条不香吗?

总结

本文是我入门的前期准备,主要介绍了Rust的入门,包括安装环境、开发工具、第一个程序、Cargo等。 我已开始入坑了,大家准备好了吗?

最后建议大家,一定要常看官方文档标准库,以及其他优秀的学习资料,不要只看一遍,要多看几遍,多思考,多实践。

祝我们都不要半途而废,一起学习,一起进步,一起成长。

参考资料

以下也是非学好的学习资料

官方网站 https://www.rust-lang.org/

官方学习目录 https://www.rust-lang.org/learn

Rust 官方文档中文教程

Rust语言圣经(Rust Course)

Rust 程序设计语言 中文版