Skip to content

Commit 70aa114

Browse files
author
zhangdong
committed
rust start
1 parent 5cbf755 commit 70aa114

File tree

1 file changed

+54
-14
lines changed

1 file changed

+54
-14
lines changed

rust/start.md

Lines changed: 54 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,62 @@
1+
# 为什么学习 Rust
2+
3+
我们已经进入 JavaScript 的第三阶段,越来越多的 JavaScript 工具将使用编译型语言进行编写。
4+
5+
得益于 Rust WebAssembly 工作组的不懈努力,Rust 编译为 WebAssembly 已成为可能。
6+
7+
## 编译型与解释型语言
8+
9+
### 编译型语言
10+
编译型语言需要使用编译器,不同平台需要生成不同的机器语言。例如,Rust、C、C++ 等。
11+
12+
### 解释型语言
13+
解释型语言通过解释器(如 V8)来生成机器语言,因此没有跨平台的问题。例如,JavaScript。
14+
115
---
2-
outline: deep
16+
17+
## Cargo:Rust 的构建系统和包管理器
18+
19+
- **创建项目**
20+
使用 `cargo new` 创建一个新项目。
21+
22+
- **构建项目**
23+
使用 `cargo build` 来构建一个项目。
24+
25+
- **构建并运行项目**
26+
使用 `cargo run` 一步构建并运行一个项目。
27+
28+
- **检查代码错误**
29+
使用 `cargo check` 构建项目而无需生成二进制文件,以便检查代码中的错误。
30+
31+
- **构建结果的存储**
32+
Cargo 不会将构建结果保存在与代码相同的目录中,而是将其存储在 `target/debug` 目录中。
33+
34+
- **发布优化**
35+
当项目准备好发布时,可以使用 `cargo build --release` 来进行优化构建。
36+
337
---
4-
为什么学习rust
538

6-
我们已经进入javaScript第三阶段,越来越多的js工具将使用编译型语言进行编写
39+
## Rust 函数返回值
40+
41+
在 Rust 中,如果一个函数体以没有尾随分号的表达式结尾,那么该表达式会成为函数的返回值。实际上,花括号包起来的任意代码块都可以用作表达式。
42+
43+
---
744

8-
并且得益于Rust WebAssembly工作组的不懈努力,使得rust编译为WebAssembly成为可能
45+
## 单元测试
946

10-
## 编译型/解释型语言
11-
编译型:需要使用编译器,不同平台需要生成不同的机器语言
12-
解释性: 例如js,通过js解释器(v8)来生成机器语言,没有跨平台的问题
47+
Rust 提供了强大的单元测试功能。在代码中,我们可以使用 `#[test]` 属性来标记测试函数。以下是一个示例:
1348

14-
Cargo 是 Rust 的构建系统和包管理器
49+
```rust
50+
#[test]
51+
fn test_gcd() {
52+
assert_eq!(gcd(14, 15), 1);
53+
assert_eq!(gcd(2 * 3 * 5 * 11 * 17,
54+
3 * 7 * 11 * 13 * 19),
55+
3 * 11);
56+
}
1557

16-
* 我们可以使用创建一个项目cargo new。
17-
* 我们可以使用 来构建一个项目cargo build。
18-
* 我们可以使用 一步构建并运行一个项目cargo run。
19-
* 我们可以构建一个项目,而无需生成二进制文件来检查错误 cargo check。
20-
* Cargo 不会将构建结果保存在与代码相同的目录中,而是将其存储在target/debug目录中。
2158

22-
当您的项目最终准备好发布时,您可以使用cargo build --release优化来编译它
59+
```
60+
* #[test]:标记 test_gcd 为测试函数,在正常编译时会跳过它。
61+
* 但是,当我们使用 cargo test 命令运行程序时,Cargo 会自动包含并运行所有标记为测试的函数。
62+
* 测试函数可以分散在源代码树中的任何位置,紧跟着它们所测试的代码。cargo test 会自动收集并运行这些测试函数。

0 commit comments

Comments
 (0)