2021-06-20

Rust学习之旅 - 序章

引言

Rust 作为最近兴起的一门新的语言,具有许多优点。它是一门令人兴奋的语言,于2010年推出,旨在通过各种出色的模块化,提高程序的安全性,以及改进原有的并发量和性能。

  1. 相对其他编程语言,Rust的整体速度要快许多。
  2. 崩溃、测试和调试的时间和频率相对于其它语言也少了许多。
  3. 具有零成本抽象(Zero-cost Abstraction)和运行时(Runtime)的可预测行为。
  4. 可以阻止那些不受保护的内存访问,在编译时便可以组织类似于悬垂指针 (Dangling Pointer)的出现。
  5. Rust拥有广泛的支持社区。
  6. Rust可与C、FFI (Foreign Function Interface)和许多其他语言进行互操作。

总体来讲 Rust 丰富的类型系统和所有权模型保证了内存和线程的安全,能够在编译时消除许多错误。并且Rust提供了非常友好的编译器,错误提示相较于C/C++难以名状的提示信息而言,则易懂许多。

曾经有人比喻:Pascal 像穿着紧身衣,C像在玩刀,C++像在玩弄燃烧的电锯,而Rust就像穿着保护装备,并且悬挂在绳子上做跑酷运动,看起来滑稽但可以安全的实现高难度动作并且不伤害自己。

基础知识

任何语言的学习都需要从基础知识学起,Rust作为一门新兴的语言,现阶段(2021/6)国内的社区生态环境还并不是十分完善,学习还是需要借助于书籍以及官方文档的帮助。

Rust权威指南

本书由 Rust 核心开发团队编写而成,由浅入深地探讨了 Rust 语言的方方面面。从学习函数、选择数据结构及绑定变量入手,逐步介绍所有权、trait、生命周期、安全保证等高级概念,模式匹配、错误处理、包管理、函数式特性、并发机制等实用工具,以及两个完整的项目开发实战案例。
在这里插入图片描述
本书的书写方式并非字典类型,虽然本书将每个语法逻辑进行了分类,并且按照章节进行排序,但是作者在书写后文时会参考前文的例子以及语法逻辑。建议读者按照书籍书写顺序进行阅读,至少每一章节按照顺序阅读,这样不会出现在阅读某个例子时,由于之前的例子没有看而不理解的情况。

Rust By Example
Rust 的线上文档,通过例子学习Rust(Rust By Example, RBE)内容由一系列可运行的实例组成,通过这些例子阐明了各种 Rust 的概念和基本库
https://doc.rust-lang.org/stable/rust-by-example/(英文版)
https://rust-by-example.budshome.com/ (中文版)
同样是讲解rust的基础语法结构,相当于书籍而言,线上文档可以更好地进行搜索工作,在工作或者学习时,遇到某些基础语法点,直接访问此网址查询相应语法点的关键词,比如 dyn,unsafe等,可以很快获得相应语法讲解,虽然是浅显的理解,但可以缓解燃眉之急。并且带有可运,可编译行例子,能更快的得知语法的意义。

常用软件

代码编译软件

Visual Studio Code (VSCode)
在这里插入图片描述

下载地址 https://code.visualstudio.com/
特点:VSCode 的Rust 代码跳转需要借助rls 工具,这个扩展工具安装完毕后,系统会提示工具此工具具有扩展功能,是否按转,这是需要点击是,否则不能进行正常的代码跳转功能(或者转到定义)
在这里插入图片描述
优点:vscode 的 test 功能相对与其他的编译器而言方便许多。
在这里插入图片描述
上图中点击 第6行和第7行之间的 Run test 按钮便可以运行test 功能,比在命令行输入要方便许多,非常适合新手学习代码。
在这里插入图片描述

缺点:但此工具具有局限性,编译器仅能分析当前Cargo 目录下的文件 ,当定义来自于,外界范围的代码(即便是来自于 std 标准库的代码)便无法进行接下来的跳转。详情见rust社区如下的讨论:
https://github.com/rust-lang/rls/issues/227
据讨论这个问题在之后会被修复,但一定时间内还是仅能在当前目录进行跳转。

Jetbrains
也是由于上述原因,使用VSCode 查看大型项目,由多个扩展库文件组成的项目,VSCode非常不方便,而Jetbrains就方便许多,Jet同样需要安装扩展库来实现对于rust语言文件跳转功能,而且Jet的全局搜索功能十分强大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值