Skip to content

Commit 6fdb8f7

Browse files
committed
chore: update images to use cdn
1 parent b15004d commit 6fdb8f7

26 files changed

Lines changed: 55 additions & 55 deletions

File tree

src/about-book.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<img src="https://github.com/sunface/rust-course/blob/main/assets/banner.jpg?raw=true" />
1+
<img src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/599a752151dd9e52.jpg" />
22

33
Rust 语言真的好:连续多年成为全世界最受欢迎的语言、没有 GC 也无需手动内存管理、性能比肩 C++/C 还能直接调用它们的代码、安全性极高 - 总有公司说使用 Rust 后以前的大部分 bug 都将自动消失、全世界最好的包管理工具 Cargo 等等。但...
44

@@ -29,7 +29,7 @@ Rust 语言圣经已写 170 余章、110 余万字、历经 800 多个小时,
2929
能与大家在茫茫人海中相识,这感觉真好!
3030

3131

32-
<img width="2452" height="744" alt="1780625980773" src="https://github.com/user-attachments/assets/988797be-c886-45ac-99d6-569fae654dfe" />
32+
<img width="2452" height="744" alt="1780625980773" src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/025e762aaa9cec23.jpg" />
3333

3434

3535

@@ -42,14 +42,14 @@ Rust 语言圣经已写 170 余章、110 余万字、历经 800 多个小时,
4242
<tr>
4343
<td align="center">
4444
<a href="https://github.com/EluvK">
45-
<img src="https://avatars.githubusercontent.com/u/36977935?v=4" width="160px" alt=""/>
45+
<img src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/2159aa6dc2d32b5a.jpg" width="160px" alt=""/>
4646
<br />
4747
<sub><b>EluvK</b></sub>
4848
</a>
4949
</td>
5050
<td align="center">
5151
<a href="https://github.com/AllanDowney">
52-
<img src="https://avatars.githubusercontent.com/u/82752697?v=4?s=100" width="160px" alt=""/>
52+
<img src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/29b9097e1d2bd47d.png" width="160px" alt=""/>
5353
<br />
5454
<sub><b>AllanDowney</b></sub>
5555
</a>
@@ -66,28 +66,28 @@ Rust 语言圣经已写 170 余章、110 余万字、历经 800 多个小时,
6666
<tr>
6767
<td align="center">
6868
<a href="https://github.com/SUN-LG">
69-
<img src="https://avatars.githubusercontent.com/u/15073915?v=4" width="100px" alt=""/>
69+
<img src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/e1f546342471fe26.jpg" width="100px" alt=""/>
7070
<br />
7171
<sub><b>孙立刚</b></sub>
7272
</a>
7373
</td>
7474
<td align="center">
7575
<a href="https://github.com/JesseAtSZ">
76-
<img src="https://avatars.githubusercontent.com/u/35264598?v=4?s=100" width="100px" alt=""/>
76+
<img src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/ab8029ee02be6e85.jpg" width="100px" alt=""/>
7777
<br />
7878
<sub><b>JesseAtSZ</b></sub>
7979
</a>
8080
</td>
8181
<td align="center">
8282
<a href="https://github.com/Rustln">
83-
<img src="https://avatars.githubusercontent.com/u/100085326?v=4?s=100" width="100px" alt=""/>
83+
<img src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/de0ff845efeb03a1.jpg" width="100px" alt=""/>
8484
<br />
8585
<sub><b>Rustln</b></sub>
8686
</a>
8787
</td>
8888
<td align="center">
8989
<a href="https://github.com/1132719438">
90-
<img src="https://avatars.githubusercontent.com/u/10138791?v=4?s=100" width="100px" alt=""/>
90+
<img src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/e994b455fbc66520.jpg" width="100px" alt=""/>
9191
<br />
9292
<sub><b>1132719438</b></sub>
9393
</a>

src/advance-practice/overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ tokio 是一个纸醉金迷之地,只要有钱就可以为所欲为,哦,
5050
因为快所以快,前者是 Rust 快,后者是 `tokio` 快。 `tokio` 在编写时充分利用了 Rust 提供的各种零成本抽象和高性能特性,而且贯彻了 Rust 的牛逼思想:如果你选择手写代码,那么最好的结果就是跟 `tokio` 一样快!
5151

5252
以下是一张官方提供的性能参考图,大致能体现出 `tokio` 的性能之恐怖:
53-
<img alt="tokio performance" src="https://pica.zhimg.com/80/v2-5f5ca10550ec936427c2919191331ae8_1440w.png" class="center" />
53+
<img alt="tokio performance" src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/6d238f7e5e02b5a6.png" class="center" />
5454

5555
**高可靠**
5656

src/advance/async/getting-started.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
我们先通过一张 web 框架性能对比图来感受下 Rust 异步编程的性能:
66

7-
<img alt="actix-vs-gin screenshot" width="100%" src="https://pic1.zhimg.com/v2-3cebd732fb56f43713f106fdcfa44a3c_b.png" class="center" />
7+
<img alt="actix-vs-gin screenshot" width="100%" src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/06c61eb14cf8fdb6.png" class="center" />
88

99
上图并不能说 Rust 写的 `actix` 框架比 Go 的 `gin` 更好、更优秀,但是确实可以一定程度上说明 Rust 的异步性能非常的高!
1010

src/advance/async/pin-unpin.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ pub struct Pin<P> {
117117

118118
它包裹一个指针,并且能确保该指针指向的数据不会被移动,例如 `Pin<&mut T>` , `Pin<&T>` , `Pin<Box<T>>` ,都能确保 `T` 不会被移动。
119119

120-
<img alt="" src="https://pic1.zhimg.com/80/v2-de79f3a7a401588d671ecd121916cd90_1440w.png" class="center" />
120+
<img alt="" src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/a9e4e2283c55be40.png" class="center" />
121121

122122
`Unpin` 才是一个特征,它表明一个类型可以随意被移动,那么问题来了,可以被 `Pin` 住的值,它有没有实现什么特征呢? 答案很出乎意料,可以被 `Pin` 住的值实现的特征是 `!Unpin` ,大家可能之前没有见过,但是它其实很简单,`!` 代表没有实现某个特征的意思,`!Unpin` 说明类型没有实现 `Unpin` 特征,那自然就可以被 `Pin` 了。
123123

@@ -243,7 +243,7 @@ fn main() {
243243

244244
下面的图片也可以帮助更好的理解这个过程:
245245

246-
<img alt="" src="https://pica.zhimg.com/80/v2-eaeb33da283dc1063b862d2307821976_1440w.jpg" class="center" />
246+
<img alt="" src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/abc5dfbffb26889b.jpg" class="center" />
247247

248248
## Pin 在实践中的运用
249249

src/advance/circle-self-ref/circle-reference.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ fn main() {}
3131

3232
这里我们创建一个有些复杂的枚举类型 `List`,这个类型很有意思,它的每个值都指向了另一个 `List`,此外,得益于 `Rc` 的使用还允许多个值指向一个 `List`
3333

34-
<img alt="" src="https://pica.zhimg.com/80/v2-0db007dfb4167ebc22f50cf5b5a85f53_1440w.png" class="center" />
34+
<img alt="" src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/3fa31ba44f970f2b.png" class="center" />
3535

3636
如上图所示,每个矩形框节点都是一个 `List` 类型,它们或者是拥有值且指向另一个 `List``Cons`,或者是一个没有值的终结点 `Nil`。同时,由于 `RefCell` 的使用,每个 `List` 所指向的 `List` 还能够被修改。
3737

@@ -87,7 +87,7 @@ b指向的节点 = Some(RefCell { value: Cons(5, RefCell { value: Nil }) })
8787
`main` 函数结束前,`a``b` 的引用计数均是 `2`,随后 `b` 触发 `Drop`,此时引用计数会变为 `1`,并不会归 `0`,因此 `b` 所指向内存不会被释放,同理可得 `a` 指向的内存也不会被释放,最终发生了内存泄漏。
8888

8989
下面一张图很好的展示了这种引用循环关系:
90-
<img alt="" src="https://pic1.zhimg.com/80/v2-2dbfc981f05019bf70bf81c93f956c35_1440w.png" class="center" />
90+
<img alt="" src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/bb0d730130fc95fb.png" class="center" />
9191

9292
现在我们还需要轻轻的推一下,让塔米诺骨牌轰然倒塌。反注释最后一行代码,试着运行下:
9393

src/advance/concurrency-with-threads/concurrency-parallelism.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
`Erlang` 之父 [`Joe Armstrong`](<https://en.wikipedia.org/wiki/Joe_Armstrong_(programmer)>)(伟大的异步编程先驱,开创一个时代的殿堂级计算机科学家,我还犹记得当年刚学到 `Erlang` 时的震撼,respect!)用一张 5 岁小孩都能看懂的图片解释了并发与并行的区别:
88

9-
<img alt="" src="https://pic1.zhimg.com/80/f37dd89173715d0e21546ea171c8a915_1440w.png" class="center" />
9+
<img alt="" src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/d60e15170197b78f.png" class="center" />
1010

1111
上图很直观的体现了:
1212

src/advance/concurrency-with-threads/thread.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ for handle in handles {
267267

268268
下图是该代码在 `48` 核机器上的运行结果:
269269

270-
<img alt="" src="https://pic3.zhimg.com/80/v2-af225672de09c0e377023f5f39dd87eb_1440w.png" class="center" />
270+
<img alt="" src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/59b571d7106070bb.png" class="center" />
271271

272272
从图上可以明显的看出:吞吐并不是线性增长,尤其从 `16` 核开始,甚至开始肉眼可见的下降,这是为什么呢?
273273

src/basic/base-type/function.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ fn add(i: i32, j: i32) -> i32 {
1212

1313
该函数如此简单,但是又是如此的五脏俱全,声明函数的关键字 `fn`,函数名 `add()`,参数 `i``j`,参数类型和返回值类型都是 `i32`,总之一切那么的普通,但是又那么的自信,直到你看到了下面这张图:
1414

15-
<img alt="" src="https://pic2.zhimg.com/80/v2-54b3a6d435d2482243edc4be9ab98153_1440w.png" class="center" />
15+
<img alt="" src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/7dd09ea27990e8d2.png" class="center" />
1616

1717
当你看懂了这张图,其实就等于差不多完成了函数章节的学习,但是这么短的章节显然对不起读者老爷们的厚爱,所以我们来展开下。
1818

src/basic/comment.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ pub fn add_two(x: i32) -> i32 {
119119

120120
当然,为了方便,我们使用 `cargo doc --open` 命令,可以在生成文档后,自动在浏览器中打开网页,最终效果如图所示:
121121

122-
<img alt="" src="https://pic2.zhimg.com/80/v2-926c91d429e2933a6a3ae3233fc56b1c_1440w.png" class="center" />
122+
<img alt="" src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/968c0c46ff56b4fe.png" class="center" />
123123

124124
非常棒,而且非常简单,这就是 Rust 工具链的强大之处。
125125

@@ -160,7 +160,7 @@ pub mod compute;
160160

161161
运行 `cargo doc --open` 查看下效果:
162162

163-
<img alt="" src="https://pic3.zhimg.com/80/v2-38dbea938884c159e74f777c6f49e3af_1440w.png" class="center" />
163+
<img alt="" src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/2d908479237da5b0.png" class="center" />
164164

165165
包模块注释,可以让用户从整体的角度理解包的用途,对于用户来说是非常友好的,就和一篇文章的开头一样,总是要对文章的内容进行大致的介绍,让用户在看的时候心中有数。
166166

@@ -279,7 +279,7 @@ pub fn try_div(a: i32, b: i32) -> Result<i32, String> {
279279

280280
以上文档注释中,我们使用 `#` 将不想让用户看到的内容隐藏起来,但是又不影响测试用例的运行,最终用户将只能看到那行没有隐藏的 `let res = world_hello::compute::try_div(10, 0)?;`
281281

282-
<img alt="" src="https://pic1.zhimg.com/80/v2-d1b98f5e70b7f8c8fb9aecce325dba0e_1440w.png" class="center" />
282+
<img alt="" src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/ef639ba3df1d1939.png" class="center" />
283283

284284
## 文档注释中的代码跳转
285285

@@ -370,7 +370,7 @@ pub struct BigY;
370370
```
371371

372372
结果如下图所示:
373-
<img alt="" src="https://pic1.zhimg.com/80/v2-1ab5b19d2bd06f3d83204d062b399bcd_1440w.png" class="center" />
373+
<img alt="" src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/92055d9ada9cc3f0.png" class="center" />
374374

375375
## 一个综合例子
376376

@@ -462,7 +462,7 @@ Green
462462

463463
最后,再来看看文档长啥样:
464464

465-
<img alt="" src="https://pic1.zhimg.com/80/v2-e9ef7351458fd01020b35990c3daf222_1440w.png" class="center" />
465+
<img alt="" src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/fa78f5713545f201.png" class="center" />
466466

467467
## 总结
468468

src/basic/compound-type/string-slice.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ let world = &s[6..11];
5353

5454
对于 `let world = &s[6..11];` 来说,`world` 是一个切片,该切片的指针指向 `s` 的第 7 个字节(索引从 0 开始, 6 是第 7 个字节),且该切片的长度是 `5` 个字节。
5555

56-
<img alt="" src="https://pic1.zhimg.com/80/v2-69da917741b2c610732d8526a9cc86f5_1440w.jpg" class="center" style="width: 50%;" />
56+
<img alt="" src="https://cdn.jsdelivr.net/gh/beatai-org/beatai-assets@3a5cc0064037656f6e24d122bd5ff1874e991bd4/rust-course/_external/82b57c82f0f59486.jpg" class="center" style="width: 50%;" />
5757

5858
在使用 Rust 的 `..` [range 序列](https://course.rs/basic/base-type/numbers.html#序列range)语法时,如果你想从索引 0 开始,可以使用如下的方式,这两个是等效的:
5959

0 commit comments

Comments
 (0)