Merge branch 'sunface:main' into main

pull/1126/head
Rustln 2 years ago committed by GitHub
commit bef10d86f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -6,11 +6,11 @@ Rust 语言真的好:连续七年成为全世界最受欢迎的语言、没有
对于后面一句话我们持保留意见,如果以找工作为标准,那国内环境确实还不好,但如果你想成为更优秀的程序员或者是玩转开源,那 Rust 还真是不错的选择,具体原因见[下一章](https://course.rs/into-rust.html)。 对于后面一句话我们持保留意见,如果以找工作为标准,那国内环境确实还不好,但如果你想成为更优秀的程序员或者是玩转开源,那 Rust 还真是不错的选择,具体原因见[下一章](https://course.rs/into-rust.html)。
至于 Rust 难学,那正是本书要解决的问题,如果看完后,你觉得没有学会 Rust可以找我们退款哦抱歉这是开源书那就退 🌟 吧 至于 Rust 难学,那正是本书要解决的问题,如果看完后,你觉得没有学会 Rust可以找我们退款哦抱歉这是开源书那就退 🌟 吧 :)
如果看到这里,大家觉得这本书的介绍并没有吸引到你,不要立即放弃,强烈建议读一下[进入 Rust 编程世界](https://course.rs/into-rust.html),那里会有不一样的精彩。 如果看到这里,大家觉得这本书的介绍并没有吸引到你,不要立即放弃,强烈建议读一下[进入 Rust 编程世界](https://course.rs/into-rust.html),那里会有不一样的精彩。
> 本书完全开源,所有的文档内容都在 `GitHub` 上,至于里面还藏有什么秘密,大家点击右上角自行发现吧 > 本书完全开源,所有的文档内容都在 `GitHub` 上,至于里面还藏有什么秘密,大家点击右上角自行发现吧 :)
> >
> 小秘密一: 你们可能会好奇,这本书到底与其它 Rust 书籍有[哪些不同](https://github.com/sunface/rust-course#教程简介) > 小秘密一: 你们可能会好奇,这本书到底与其它 Rust 书籍有[哪些不同](https://github.com/sunface/rust-course#教程简介)

@ -237,7 +237,7 @@ fn main() {
### 悬垂引用(Dangling References) ### 悬垂引用(Dangling References)
悬垂引用也叫做悬垂指针,意思为指针指向某个值后,这个值被释放掉了,而指针仍然存在,其指向的内存可能不存在任何值或已被其它变量重新使用。在 Rust 中编译器可以确保引用永远也不会变成悬垂状态:当你拥有一些数据的引用,编译器可以确保数据不会在其引用之前被释放,要想释放数据,必须先停止其引用的使用。 悬垂引用也叫做悬垂指针,意思为指针指向某个值后,这个值被释放掉了,而指针仍然存在,其指向的内存可能不存在任何值或已被其它变量重新使用。在 Rust 中编译器可以确保引用永远也不会变成悬垂状态:当你获取数据的引用后,编译器可以确保数据不会在引用结束前被释放,要想释放数据,必须先停止其引用的使用。
让我们尝试创建一个悬垂引用Rust 会抛出一个编译时错误: 让我们尝试创建一个悬垂引用Rust 会抛出一个编译时错误:

@ -41,7 +41,7 @@ uuid = { path = "../uuid" }
这里我们使用自己修改过的 `patch` 来覆盖来自 `crates.io` 的版本,由于克隆下来的 `uuid` 目录和我们的项目同级,因此通过相对路径 "../uuid" 即可定位到。 这里我们使用自己修改过的 `patch` 来覆盖来自 `crates.io` 的版本,由于克隆下来的 `uuid` 目录和我们的项目同级,因此通过相对路径 "../uuid" 即可定位到。
在成功为 `uuuid` 打了本地补丁后,现在尝试在项目下运行 `cargo build`,但是却报错了,而且报错内容有一些看不太懂: 在成功为 `uuid` 打了本地补丁后,现在尝试在项目下运行 `cargo build`,但是却报错了,而且报错内容有一些看不太懂:
```shell ```shell
$ cargo build $ cargo build

@ -12,18 +12,18 @@
```rust ```rust
fn greet_world() { fn greet_world() {
let southern_germany = "Grüß Gott!"; let southern_germany = "Grüß Gott!";
let chinese = "世界,你好"; let chinese = "世界,你好";
let english = "World, hello"; let english = "World, hello";
let regions = [southern_germany, chinese, english]; let regions = [southern_germany, chinese, english];
for region in regions.iter() { for region in regions.iter() {
println!("{}", &region); println!("{}", &region);
} }
} }
fn main() { fn main() {
greet_world(); greet_world();
} }
``` ```
打开终端,进入 `world_hello` 工程根目录,运行该程序。(你也可以在 VSCode 中打开终端,方法是点击 VSCode 上方菜单栏中的终端->新建终端,或者直接使用快捷键打开。) 打开终端,进入 `world_hello` 工程根目录,运行该程序。(你也可以在 VSCode 中打开终端,方法是点击 VSCode 上方菜单栏中的终端->新建终端,或者直接使用快捷键打开。)

Loading…
Cancel
Save