update readme.md

pull/266/head
sunface 3 years ago
commit ffee076f43

BIN
book/.DS_Store vendored

Binary file not shown.

2
book/.gitignore vendored

@ -1,2 +1,2 @@
book book
*/.DS_Store .DS_Store

@ -200,7 +200,7 @@ fn do_stuff<T>(value: &T) {
首先,从直觉上来说,该方法会报错,因为`T`没有实现`Clone`特征,但是真实情况是什么呢? 首先,从直觉上来说,该方法会报错,因为`T`没有实现`Clone`特征,但是真实情况是什么呢?
我们先来推导一番。 首先通过值方法调用就不再可行,因此`T`没有实现`Clone`特征,也就无法调用`T`的`clone`方法。接着编译器尝试**引用方法调用**,此时`T`变成`&T`,在这种情况下,`clone`方法的签名如下:`fn clone(&&T) -> &T`着我们现在对`value`进行了引用。 编译器发现`&T`实现了`Clone`类型(所有的引用类型都可以被复制,因为其实就是复制一份地址),因此可以可以推出`cloned`也是`&T`类型。 我们先来推导一番。 首先通过值方法调用就不再可行,因此`T`没有实现`Clone`特征,也就无法调用`T`的`clone`方法。接着编译器尝试**引用方法调用**,此时`T`变成`&T`,在这种情况下,`clone`方法的签名如下:`fn clone(&&T) -> &T`着我们现在对`value`进行了引用。 编译器发现`&T`实现了`Clone`类型(所有的引用类型都可以被复制,因为其实就是复制一份地址),因此可以可以推出`cloned`也是`&T`类型。
最终,我们复制出一份引用指针,这很合理,因为值类型`T`没有实现`Clone`,只能去复制一个指针了。 最终,我们复制出一份引用指针,这很合理,因为值类型`T`没有实现`Clone`,只能去复制一个指针了。

Binary file not shown.

@ -1,19 +1,21 @@
## 墙推VSCode! ## 墙推 VSCode!
`VSCode`15年刚开始推出我就在使用了做为第一个吃螃蟹的人,可以说见证了它一路的快速发展,直到现在它已经成为开源世界最火的 IDE 之一(弱弱的说一句,之一也许可以去掉) `VSCode` 15 年刚开始推出,我就在使用了。做为第一个吃螃蟹的人,可以说见证了它一路的快速发展,直到现在它已经成为开源世界最火的 IDE 之一(弱弱的说一句,之一也许可以去掉)
顺便歪楼说一句:我预言过三件事, 在13年预言 `Golang` 会火遍全世界,同时创建了14-19年最火的 Golang 隐修会社区可惜因为某些原因被封停了甚是遗憾在15年预言 `VSCode` 会成为世界上最好的 IDE同时我还是 `jaeger tracing` 项目的第一个star用户(是的,比作者还早),当时就很看好这个项目的后续发展。 顺便歪楼说一句:我预言过三件事
现在呢,我在这里正式预言: **未来 `Rust` 会成为主流编程语言之一,在几乎所有开发领域都将大放光彩**,总之牛逼已吹下,希望不要被打脸:( 1. 在 13 年预言 `Golang` 会火遍全世界。同时创建了 14-19 年最火的 Golang 隐修会社区,可惜因为某些原因被封停了,甚是遗憾。
2. 在 15 年预言 `VSCode` 会成为世界上最好的 IDE同时我还是 `jaeger tracing` 项目的第一个 star 用户(是的,比作者还早),当时就很看好这个项目的后续发展。
3. 现在呢,我在这里正式预言: **未来 `Rust` 会成为主流编程语言之一,在几乎所有开发领域都将大放光彩**。总之牛逼已吹下,希望不要被打脸。:(
下面继续简单介绍下 VScode以下内容引用于官网 下面继续简单介绍下 VScode以下内容引用于官网
> Visual Studio Code(VSCode)是微软2015年推出的一个轻量但功能强大的源代码编辑器基于 Electron 开发,支持 Windows、Linux 和 MacOS 操作系统。它内置了对 JavaScriptTypeScript 和 Node.js 的支持并且具有丰富的其它语言和扩展的支持功能超级强大。Visual Studio Code 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义快捷键、括号匹配和颜色区分、代码片段、代码对比 Diff、GIT 命令等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。 > Visual Studio Code(VSCode) 是微软 2015 年推出的一个轻量但功能强大的源代码编辑器,基于 Electron 开发,支持 Windows、Linux 和 MacOS 操作系统。它内置了对 JavaScriptTypeScript 和 Node.js 的支持并且具有丰富的其它语言和扩展的支持功能超级强大。Visual Studio Code 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义快捷键、括号匹配和颜色区分、代码片段、代码对比 Diff、GIT 命令等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。
## 安装VSCode的 Rust 插件 ## 安装 VSCode 的 Rust 插件
在VScode的左侧扩展目录里搜索 `rust`,你能看到两个 Rust 插件,如果没有意外,这两个应该分别排名第一和第二: VScode 的左侧扩展目录里,搜索 `rust`, 你能看到两个 Rust 插件,如果没有意外,这两个应该分别排名第一和第二
1. 官方的 `Rust`,作者是 `The Rust Programming Language`, 官方出品,牛逼就完了,但是……我们并不推荐,这个插件有几个问题: 1. 官方的 `Rust`,作者是 `The Rust Programming Language`, 官方出品,牛逼就完了,但是……我们并不推荐,这个插件有几个问题
- 首先是在代码跳转上支持的很烂,只能在自己的代码库中跳转,一旦跳到别的三方库,那就无法继续跳转,对于查看标准库和三方库的源码带来了极大的困扰 - 首先是在代码跳转上支持的很烂,只能在自己的代码库中跳转,一旦跳到别的三方库,那就无法继续跳转,对于查看标准库和三方库的源码带来了极大的困扰
- 其次,不支持类型自动标注,对于 Rust 语言而言,类型说明是非常重要的,特别是在你不知道给变量一个什么类型时,这种 IDE 的自动提示就变得弥足珍贵 - 其次,不支持类型自动标注,对于 Rust 语言而言,类型说明是非常重要的,特别是在你不知道给变量一个什么类型时,这种 IDE 的自动提示就变得弥足珍贵
- 代码提示不太好用,有些方法既不会提示,也不能跳转 - 代码提示不太好用,有些方法既不会提示,也不能跳转
@ -22,11 +24,15 @@
所以,综上所述,我们选择 `rust-analyer` 作为 Rust 语言的插件,具体的安装很简单,点击插件,选择安装即可,根据提示可能需要重新加载 IDE。 所以,综上所述,我们选择 `rust-analyer` 作为 Rust 语言的插件,具体的安装很简单,点击插件,选择安装即可,根据提示可能需要重新加载 IDE。
安装完成后,在第一次打开 Rust 项目时需要安装一些依赖具体的状态在左下角会进行提示包括下载、代码构建、building等 > 在搜索 VSCode 插件时,报错:`提取扩展出错XHR failed`,这个报错是因为网络原因导致,很可能是你的网络不行或者翻墙工具阻拦你的访问,试着关掉翻墙,再进行尝试
当插件使用默认设置时,每一次保存代码,都会出进行一次重新编译,如果你的电脑慢,有一点一定要注意:在编译器构建代码的同时,不要在终端再运行 `cargo run` 等命令进行编译,不然会获得一个报错提示,大意是当前文件目录已经被锁定,等待其它使用者释放,如果等了很久 IDE 还是没有释放(虽然我没遇到过,但是存在这个可能性),你可以关掉 IDE并手动 `kill``rust-anylyzer`,然后重新尝试 安装完成后,在第一次打开 Rust 项目时需要安装一些依赖具体的状态在左下角会进行提示包括下载、代码构建、building 等
> 在搜索 VSCode 插件时,报错:`提取扩展出错XHR failed`,这个报错是因为网络原因导致,很可能是你的网络不行或者翻墙工具阻拦你的访问,试着关掉翻墙,再进行尝试 当插件使用默认设置时,每一次保存代码,都会出进行一次重新编译。
> 如果你的电脑慢,有一点一定要注意:
>
> 在编译器构建代码的同时,不要在终端再运行 `cargo run` 等命令进行编译,不然会获得一个报错提示,大意是当前文件目录已经被锁定,等待其它使用者释放。如果等了很久 IDE 还是没有释放(虽然我没遇到过,但是存在这个可能性),你可以关掉 IDE并手动 `kill``rust-anylyzer`,然后重新尝试。
## 安装其它好用的插件 ## 安装其它好用的插件

Binary file not shown.

Binary file not shown.

2
codes/.gitignore vendored

@ -1,2 +1,2 @@
book book
*/.DS_Store .DS_Store

@ -5,6 +5,7 @@ target/
*.pdb *.pdb
exercises/clippy/Cargo.toml exercises/clippy/Cargo.toml
exercises/clippy/Cargo.lock exercises/clippy/Cargo.lock
.idea .idea/
.vscode .vscode
*.iml *.iml

Loading…
Cancel
Save