From 300be8ce4eb73fef0cb6082d0bf16bdcbc99e054 Mon Sep 17 00:00:00 2001 From: "Peng Hailin," Date: Mon, 24 Apr 2023 20:33:36 +0800 Subject: [PATCH] Update Ch14 --- projects/add/Cargo.toml | 1 + projects/add/add_two/Cargo.toml | 8 +++++++ projects/add/add_two/src/lib.rs | 25 ++++++++++++++++++++++ projects/add/adder/Cargo.toml | 1 + projects/add/adder/src/main.rs | 6 +++++- src/Ch14_More_about_Cargo_and_Crates-io.md | 8 +++---- 6 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 projects/add/add_two/Cargo.toml create mode 100644 projects/add/add_two/src/lib.rs diff --git a/projects/add/Cargo.toml b/projects/add/Cargo.toml index 1448801..82deae7 100644 --- a/projects/add/Cargo.toml +++ b/projects/add/Cargo.toml @@ -3,4 +3,5 @@ members = [ "adder", "add_one", + "add_two", ] diff --git a/projects/add/add_two/Cargo.toml b/projects/add/add_two/Cargo.toml new file mode 100644 index 0000000..3cbe4bf --- /dev/null +++ b/projects/add/add_two/Cargo.toml @@ -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] diff --git a/projects/add/add_two/src/lib.rs b/projects/add/add_two/src/lib.rs new file mode 100644 index 0000000..aed3a34 --- /dev/null +++ b/projects/add/add_two/src/lib.rs @@ -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); + } +} diff --git a/projects/add/adder/Cargo.toml b/projects/add/adder/Cargo.toml index debd64b..0cd7b79 100644 --- a/projects/add/adder/Cargo.toml +++ b/projects/add/adder/Cargo.toml @@ -7,4 +7,5 @@ edition = "2021" [dependencies] add_one = { path = "../add_one" } +add_two = { path = "../add_two" } rand = "0.8.3" diff --git a/projects/add/adder/src/main.rs b/projects/add/adder/src/main.rs index b4153a8..cb007b1 100644 --- a/projects/add/adder/src/main.rs +++ b/projects/add/adder/src/main.rs @@ -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) + ); } diff --git a/src/Ch14_More_about_Cargo_and_Crates-io.md b/src/Ch14_More_about_Cargo_and_Crates-io.md index 747c5f9..95b7873 100644 --- a/src/Ch14_More_about_Cargo_and_Crates-io.md +++ b/src/Ch14_More_about_Cargo_and_Crates-io.md @@ -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 上的二进制代码箱