guide.deepin.org/docs/deepin进阶教程/11.编程开发/11.4.rust编程环境搭建.md
2023-02-27 15:13:13 +08:00

51 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 11.4. rust编程环境搭建
Rust是Mozilla基金会在2015年发布的编程语言最开始目的是为了实现一个全新的浏览器内核[Servo](https://github.com/servo/servo),可惜夭折了(先帝创业未半而中道崩殂), Servo 现在交给了linux基金会可惜也没有什么维护了。但是Rust语言之后独立于Mozilla基金会成立了自己的基金会之后在各种领域大放光彩。(Servo 在天之灵会开心吧)。
Rust语言有很多特点当然这些也并不是它的特点都是从函数式借鉴过来的Result和有结构的枚举也并非它首创独特的所有权无GC也是从cpp等语言发展来的。不过Rust是将这些整合到一起的语言。
有时侯Rust被戏称为更好的cpp,没有裸指针的cpp其中有个原因就是它确实实现了cpp多年没有实现的愿望比如消灭nullptr裸指针move控制逼迫开发者使用智能指针等。
如果从没有写过函数式等语言的话你可能会对Rust干掉了继承的行为很困惑觉得举步维艰。不过对于现代语言来说推崇的行为是组合大于继承所以Rust提供了trait当然显然这个概念也并非Rust第一个发明的。另外库可以使用如`#derive[default]`等语法糖来减少你使用trait时候需要写的代码所以不要怕。
## 11.4.1. 安装
请参考[rust](https://www.rust-lang.org/learn/get-started)官网的推荐。
``` bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
## 11.4.2 编辑器
Rust一般使用的语言提示工具是rust-analyzer, (rls坟头草已经3尺高了令人感慨)你可以在vscode,emacs,vim等工具发现它的身影。使用这个你需要使用lsp的编辑器vscode你只需要装插件如果你想使用emacs,可以去参考lsp-mode, vim使用coc.nvim, nvim 可以使用coc或者nvim-lsp。(如果你是使用后三者的话不去看wiki真的太过分了对吧你会看的对吧)
### 11.4.3 文档
Rust开始主要是两本书
[The Book](https://doc.rust-lang.org/book/)
[Rust By Example](https://doc.rust-lang.org/rust-by-example/)
如果你觉得原版费力的话官方首页有推荐翻译版本。不过也有社区维护的其他book,在这里也捎带介绍
[Rust 圣经](https://course.rs/about-book.html)
[Rust wiki](https://rustwiki.org/)
另外如果你需要写异步,你还需要
[tokio.rs](https://tokio.rs/)
[async book](https://rust-lang.github.io/async-book)
不过一般就无脑`tokio.spawn`,`await`就可以了。
如果需要写gui比如gtk(哦,为什么要入这个苦海),你可能需要
[gtk-rs](https://gtk-rs.org/)
另外上述网站是使用一个叫做mdbook的工具生成的我很推荐使用这个工具生成你的网站。
忘了重要的一点使用crate时候需要去参考库的文档Rust上传crate会编译生成文档你需要去
[Lib.rs](https://lib.rs/)
[docs.rs](https://docs.rs)
获取每个库的详细文档。