Update Ch14

This commit is contained in:
Peng Hailin, 2023-04-24 20:33:36 +08:00
parent 9da71c4e51
commit 300be8ce4e
6 changed files with 44 additions and 5 deletions

View File

@ -3,4 +3,5 @@
members = [
"adder",
"add_one",
"add_two",
]

View File

@ -0,0 +1,8 @@
[package]
name = "add_two"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View File

@ -0,0 +1,25 @@
/// 将一个整数加 2。
///
/// # Examples
///
/// ```
/// let num = 15;
///
/// let answer = add_two::add_two(num);
/// assert_eq! (answer, 17);
/// ```
///
pub fn add_two(num: i32) -> i32 {
num + 2
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn it_works() {
let result = add_two(7);
assert_eq!(result, 9);
}
}

View File

@ -7,4 +7,5 @@ edition = "2021"
[dependencies]
add_one = { path = "../add_one" }
add_two = { path = "../add_two" }
rand = "0.8.3"

View File

@ -1,6 +1,10 @@
use add_one::add_one;
use add_two::add_two;
fn main() {
let num = 10;
println!("你好,世界!\n\t{num} 加 1 为 {}!", add_one(num));
println!("你好,世界!\n\t{num} 加 1 为 {}{num} 加 2 为 {}",
add_one(num),
add_two(num)
);
}

View File

@ -736,7 +736,7 @@ mod tests {
}
```
此时请在顶层的 `add` 目录中运行 `cargo test`。在像这样组织起来的工作区中,运行 `cargo test`,就会运行工作区中所有代码箱的测试:
现在请于顶层的 `add` 目录中运行 `cargo test`。在像这样组织起来的工作区中,运行 `cargo test`,就会运行工作区中所有代码箱的测试:
```console
$ cargo test lennyp@vm-manjaro
@ -787,13 +787,13 @@ test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; fini
```
此输出展示了只运行那个 `add_one` 代码箱测试,而未运行 `adder` 代码箱测试的 `cargo test`
此输出展示出,`cargo test` 只运行了 `add_one` 代码箱的测试,而未运行 `adder` 代码箱的测试
在将工作区中的代码箱发布到 `crates.io` ,工作区中的各个代码箱,则将需要被单独发布。与 `cargo test` 类似,可通过使用 `-p` 命令行标志,并指明打算发布的那个代码箱名字,发布工作区中的某个特定代码箱。
若咱们把工作区中的代码箱发布到 `crates.io` ,工作区中的各个代码箱将需要被单独发布。与 `cargo test` 类似,咱们可通过使用 `-p` 命令行标志,并指明打算发布的代码箱名字,发布工作区中的特定代码箱。
作为附加练习,请以与 `add_one` 代码箱类似方式,把 `add_two` 添加到这个工作区!
在项目日渐增长时,就要考虑使用工作区:相比于一大块代码,搞明白较小的、单独的组件,要容易一些。再者,把代码箱保持在一个工作区中,当工作区中的那些代码箱经常同时被修改时,就能令到他们之间的协作更容易。
当咱们的项目日渐增长时,请考虑使用工作区:相比于一大块代码,要搞清楚较小的、单独的组件就更容易一些。再者,当代码箱经常同时被修改时,把这些代码箱保持在工作区中,就能令到他们之间的协作更容易。
## 使用 `cargo install` 安装 Crates.io 上的二进制代码箱