Rust编程语言入门

Posted 小乔的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rust编程语言入门相关的知识,希望对你有一定的参考价值。

Rust 编程语言入门

Rust简介

为什么要用Rust?

  • Rust是一种令人兴奋的新编程语言,它可以让每个人编写可靠且高效的软件。
  • 它可以用来替换C/C++,Rust和他们具有同样的性能,但是很多常见的bug在编译时就可以被消灭。
  • Rust是一种通用的编程语言,但是它更善于以下场景:
    • 需要运行时的速度
    • 需要内存安全
    • 更好的利用多处理器

与其他语言比较

  • C/C++性能非常好,但类型系统和内存都不太安全。
  • Java/C#,拥有GC,能保证内存安全,也有很多优秀特性,但是性能不行。
  • Rust:
    • 安全
    • 无需GC(性能好速度快)
    • 易于维护、调试、代码安全高效

Rust特别擅长的领域

  • 高性能 Web Service (Web API)
  • WebAssembly
  • 命令行工具
  • 网络编程
  • 嵌入式设备
  • 系统编程

Rust与Firefox

  • Rust最初是Mazilla公司的一个研究性项目。Firefox是Rust产品应用的一个重要的例子。
  • Mazilla 一直以来都在用Rust创建一个名为Servo的实验性浏览器引擎,其中的所有内容都是并行执行的。
    • 目前Servo的部分功能已经被集成到Firefox里面了
  • Firefox原来的量子版就包含了Servo的CSS渲染引擎
    • Rust使得Firefox在这方面得到了巨大的性能改进

Rust的用户和案例

  • Google:新操作系统Fuschia,其中Rust代码量大约占30%
  • Amazon:基于Linux开发的直接可以在裸机、虚机上运行容器的操作系统
  • System76、百度、华为、蚂蚁金服...

Rust的优点

  • 性能
  • 安全性
  • 无所畏惧的并发

Rust的缺点

  • 学习曲线高 ”难学“

注意

  • Rust有很多独有的概念,要一步一步学习

Rust 安装

官网:https://www.rust-lang.org/zh-CN/learn/get-started

Windows:按官网指示操作

Mac 安装:

curl --proto \'=https\' --tlsv1.2 -sSf https://sh.rustup.rs | sh

更新与卸载Rust

  • 更新Rust
rustup update
  • 卸载Rust
rustup self uninstall

安装验证

  • rustc --version
    • 结构格式:rustc x.y.z(abcdbcdbc yyyy-mm-dd)
    • 会现实最新稳定版:版本号、commit hash、commit日期

本地文档

  • 安装Rust的时候,会在本地安装文档,可离线浏览
  • 运行rustup doc可在浏览器打开本地文档
➜ cargo --version
cargo 1.67.1 (8ecd4f20a 2023-01-10)

~
➜ rustc --version
rustc 1.67.1 (d5a82bbd2 2023-02-07)

~
➜ rustup doc

开发工具

  • Visual Studio Code
    • Rust 插件
  • Pycharm(Intellij Idea 系列)
    • Rust插件

Hello World 例子

编写Rust程序

  • 程序文件后缀名:rs
  • 文件命名规范:hello_world.rs
➜ mkdir rust

~
➜ cd rust

~/rust
➜ mkdir hello_world

~/rust
➜ cd hello_world

~/rust/hello_world
➜ code .

~/rust/hello_world
➜ pwd
/Users/qiaopengjun/rust/hello_world

~/rust/hello_world via 

Rust 语言新人入门指南

首先,学习 Rust 不能急躁。如果你抱着之前 1 天上手 Python, 2 天入门 Go 的经验和优越感来学习 Rust 的话,你可能会遭遇严重的失败感。如果你来自 Haskell/Ocaml 等函数式语言社区,你会有相当的亲切感。对于有丰富 C++ 开发经验的同学来说,上手可能相对比较容易。


了解


一般来说,要决定学习一门新语言之前,会先大体了解下这门语言的特点和目前的发展情况。这时,建议看


  • Rust 官网  https://rust-lang.org
  • Rust Force  https://rustforce.net  Rust 基本要素汇集
  • Rust 语言中文社区论坛   ​https://rust.cc​
  • 《Rust语言学习交流》公众号,每日 Rust 新闻和知识推送
  • 知乎  有很多关于 Rust 相关的知识、专栏、博客等


看书


了解大体情况后,可能就想看看书,系统的学习一下。目前,网络上 Rust 电子书籍有:


  • The Book  https://doc.rust-lang.org/book/  官方的 Rust 书(最新第二版,必看)
  • The Book 中文翻译   https://github.com/KaiserY/rust-book-chinese
  • Rust Primer   https://rustcc.gitbooks.io/rustprimer/content/   Rust 中文社区推出的教程


电子书看着没感觉,想买实体书来看看,目前国内有如下两本已出版 Rust 学习教程。


实体书


  • 《Rust 编程之道》 张汉东 电子工业出版社 2019-1
  • 《深入浅出Rust》范长春 机械工业出版社 2018-8


练习


想做下练习


  • Rust By Example   https://doc.rust-lang.org/stable/rust-by-example/



开发


开始开发具体的工程了,cargo 和 crates.io 必须好好了解一下。


国内 crates.io 源太慢,有解决办法:


Rustcc 联合 LongHash 提供了国内 Rust 开发者专属 crates.io 镜像。把下面内容填充到你的 ~/.cargo/config 文件中(没有就创建一个)。



[source.crates-io]
replace-with = "rustcc"


[source.rustcc]
registry = "https://code.aliyun.com/rustcc/crates.io-index.git"



然后,就尽情地享受飞一般的感觉吧。


招聘情况


想了解一下目前国内的 Rust 招聘情况,可以看这里


更多话题


更多话题 ,比如 编辑器如何配置,哪个IDE最好,如何配置,Rust 目前在哪些领域有应用,Rust 有什么杀手锏应用,区块链为什么越来越多选择用 Rust 来实现,WebAssembly 与 Rust 的关系等等,就不展开介绍了,上面提到的各种资源,以及网络上,有丰富的信息,大家可以自行查阅。


最后


In Rust, We Trust.







以上是关于Rust编程语言入门的主要内容,如果未能解决你的问题,请参考以下文章

Rust编程语言入门之高级特性

Rust 语言新人入门指南

Rust 语言新人入门指南

Rust语言入门关键技术与实战经验

Rust编程语言入门之项目实例:- 命令行程序

Rust编程语言入门之编写自动化测试