Rust 入坑之前言 - 进入Rust的编程世界
文章目录
前言
由于个人原因,主要是为了缓解焦虑,其次掌握一门新的编程语言,扩展视野等,希望未来能有用武之地,所以决定学习一门新的编程语言,这门编程语言就是Rust。
为什么是Rust
Rust是由Mozilla员工“Graydon Hoare”于2006年开发的系统编程语言。他将这种语言描述为支持功能和命令范式的“安全,并发和实用的语言”。 Rust 集表达力、高性能、内存安全于一身,在 1.0 版本发布后不久,口碑就一路高飞猛进,从 16 年起,连续 6 年成为 Stack Overflow 用户评选出来的最受喜爱的语言(2021/3/15 评选结果)。
-
性能
Rust非常快速且内存高效:没有运行时或垃圾收集器,它可以为性能关键型服务提供动力,在嵌入式设备上运行,并且很容易与其他语言集成。
-
可靠
Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全——使您能够在编译时消除许多类别的错误。
-
生产率
Rust 拥有出色的文档、带有有用错误消息的友好编译器以及一流的工具——集成的包管理器和构建工具、具有自动完成和类型检查功能的智能多编辑器支持、自动格式化程序等等
-
强大且活跃的社区
-
被广泛使用,
Google, Microsoft, Firefox, Dropbox, Linux内核
等等,都在生产环境上使用了Rust
避免从入门到放弃
Rust 对初学者似乎并不友好,被公认难入门,学习曲线相当陡峭。
避免试一试的心态
Rust 是一门全新的语言,它会带给你前所未有的体验,提升你的通用编程水平,甚至于赋予你全新的编程思想。
在学习Go
等编程语言时,你可能会一边工作、一边轻松愉快的学习它们,但是Rust
不行。
在学习Rust
的同时你会收获很多语言之外的知识, 因此 Rust 在入门阶段比很多编程语言要更难,但是一旦入门,你将收获一个全新的自己,争取成为一个更加优秀的程序员。
在学习过程中,给大家几点建议:
- 要提前做好会遇到困难的准备,不要抱着试一试的心态去试一试,否则是浪费时间和消耗学习激情。
- 由简入难,给自己信心
- 每学习一点新知识,就要去实践一下,不要等到学完了再去实践,否则会忘记。
- 深入学习官方文档,不要只看一遍,要多看几遍,多思考,多实践。
总之,Rust 入门难,但是在你一次次克服艰难险阻的同时,也一次次收获了与众不同的编程经验, 最后历经九九八十一难,回头看,你会发现,原来自己已经成为了一个更加优秀的程序员。
Good Luck!
安装环境
rustup
是工具链管理工具,Rust 由该工具安装和管理,也是官方推荐方式。
如果rustup
已安装过,则可以通过运行rustup update
来更新您的安装。
安装
我是Mac笔记本,我选择使用brew
来安装rustup
其他参考官方安装方式
具体安装方式如下:
|
|
然后执行
|
|
顺着流程安装完成之后,重启终端便可以安装好rust环境以及相关的工具链。
可以查看对应rustc以及cargo的版本:
|
|
rustc 1.72.0 (5680fa18f 2023-08-23)
|
|
cargo 1.72.0 (103a7ff2e 2023-08-15)
注:若发现版本号不同,以您的版本号为准
更新
-
更新Rust及工具链
1
rustup update
-
更新 rustup
1
rustup self update
卸载
|
|
开发工具
开发工具有很多种选择,如:VSCode
、IntelliJ IDEA
、Vim
、Emacs
等等。
如果你是老手,选择你习惯的编辑器即可。
如果你是新手,推荐你使用VSCode
,不需购买授权,不需要破解。安装插件rust-analyzer
即可。
强烈新的在你整个编程生涯中熟悉使用一种开发编辑器,一种文本编辑工具,这样可以让你更加专注于编程本身,而不是编辑器的使用。
Hello World开启第一个程序
几乎学习任何一门编程语言,都是以Hello World
开始的,咱也不能免俗。
创建个文件夹hello_world
,然后创建一个文件main.rs
,(此文件是当前 Rust 工程的入口文件) 然后输入如下代码:
|
|
然后执行如下命令:
|
|
会看到如下输出:Hello, world!
恭喜你大功告成了,你已经成功的运行了你的第一个Rust程序。
认识 Cargo
Cargo是什么
Cargo
是Rust 构建工具和包管理器,它可以帮助你编译、测试、运行你的代码,同时也可以管理依赖项(dependencies)。
可以做很多事情:
- 创建你的项目
cargo new
- 构建你的项目
cargo build
- 运行你的项目
cargo run
- 测试你的项目
cargo test
- 构建项目文档
cargo doc
- 分析并报告错误
cargo check
- 发布你的项目到crates.io
cargo publish
- 还有很多其他功能,慢慢探索吧….
创建项目
|
|
运行项目
有两种方式可以运行项目:
-
cargo run
-
手动编译和运行项目
首先来看看第一种方式:
|
|
再来看看第二种方式:
编译项目:
|
|
运行项目:
|
|
./target/debug/world_hello
中有一个 debug
字段,没错我们运行的是 debug 模式,
在这种模式下,代码的编译速度会非常快,可是福兮祸所伏,运行速度就慢了. 原因是,
在 debug 模式下,Rust 编译器不会做任何的优化,只为了尽快的编译完成,让你的开发流程更加顺畅。
有debug
模式,那就会有release
模式,release 模式下,Rust 编译器会做很多优化,比如去掉不必要的检查,使得代码运行的更快。
添加 –release 来编译:
|
|
试着运行一下我们高性能的 release 程序:
|
|
cargo check
cargo check 是我们在代码开发过程中最常用的命令, 它的作用很简单:快速的检查一下代码能否编译通过。因此该命令速度会非常快,能节省大量的编译时间。
|
|
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/