|
|
|
@ -104,7 +104,7 @@ pub fn add_one(x: i32) -> i32 {
|
|
|
|
|
add-one = { path = "../add-one" }
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
工作空间中的 crate 不必相互依赖,所以仍需显示的表明工作空间中 crate 的依赖关系。
|
|
|
|
|
工作空间中的 crate 不必相互依赖,所以仍需显式地表明工作空间中 crate 的依赖关系。
|
|
|
|
|
|
|
|
|
|
接下来,在 `adder` crate 中使用 `add-one` crate 的函数 `add_one`。打开 *adder/src/main.rs* 在顶部增加一行 `extern crate` 将新 `add-one` 库 crate 引入作用域。接着修改 `main` 函数来调用 `add_one` 函数,如示例 14-7 所示:
|
|
|
|
|
|
|
|
|
@ -324,4 +324,4 @@ test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
|
|
|
|
|
|
|
|
|
|
现在尝试以类似 `add-one` crate 的方式向工作空间增加 `add-two` crate 来作为更多的练习!
|
|
|
|
|
|
|
|
|
|
随着项目增长,考虑使用工作空间:每一个更小的组件比一大块代码要容易理解。将 crate 保持在工作空间中更易于协调他们的改变,如果他们一起运行并经常需要同时被修改的话。
|
|
|
|
|
随着项目增长,考虑使用工作空间:每一个更小的组件比一大块代码要容易理解。将 crate 保持在工作空间中更易于协调他们的改变,如果他们一起运行并经常需要同时被修改的话。
|
|
|
|
|