mirror of
https://github.com/KaiserY/trpl-zh-cn
synced 2024-11-09 00:43:59 +08:00
fixed CH14-04 L07, CH15-01 L37 L131
This commit is contained in:
parent
d5f93d6dc5
commit
696d852fe9
@ -4,7 +4,7 @@
|
|||||||
> <br>
|
> <br>
|
||||||
> commit 4f2dc564851dc04b271a2260c834643dfd86c724
|
> commit 4f2dc564851dc04b271a2260c834643dfd86c724
|
||||||
|
|
||||||
`cargo install`命令用于在本地安装和使用二进制 crate。它并不打算替换系统中的包;它意在作为一个方便 Rust 开发者安装他人在 crates.io 共享的工具的手段。只有有二进制目标文件的包能够安装,而且所有二进制文件都被安装到 Rust 安装根目录的 *bin* 文件夹中。如果你使用 *rustup.rs* 安装的 Rust 且没有自定义任何配置,这将是`$HOME/.cargo/bin`。将这个目录添加到`$PATH`环境变量中就能够运行通过`cargo install`安装的程序了。
|
`cargo install`命令用于在本地安装和使用二进制 crate。它并不打算替换系统中的包;它意在作为一个方便 Rust 开发者们安装其他人已经在 crates.io 上共享的工具的手段。只有有二进制目标文件的包能够安装,而且所有二进制文件都被安装到 Rust 安装根目录的 *bin* 文件夹中。如果你使用 *rustup.rs* 安装的 Rust 且没有自定义任何配置,这将是`$HOME/.cargo/bin`。将这个目录添加到`$PATH`环境变量中就能够运行通过`cargo install`安装的程序了。
|
||||||
|
|
||||||
例如,第十二章提到的叫做`ripgrep`的用于搜索文件的`grep`的 Rust 实现。如果想要安装`ripgrep`,可以运行如下:
|
例如,第十二章提到的叫做`ripgrep`的用于搜索文件的`grep`的 Rust 实现。如果想要安装`ripgrep`,可以运行如下:
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ enum List {
|
|||||||
<span class="caption">Listing 15-2: The first attempt of defining an enum to
|
<span class="caption">Listing 15-2: The first attempt of defining an enum to
|
||||||
represent a cons list data structure of `i32` values</span>
|
represent a cons list data structure of `i32` values</span>
|
||||||
|
|
||||||
我们实现了一个只存放`i32`值的 cons list。也可以选择实用第十章介绍的泛型来实现一个类型无关的 cons list。
|
我们实现了一个只存放`i32`值的 cons list。也可以选择使用第十章介绍的泛型来实现一个类型无关的 cons list。
|
||||||
|
|
||||||
> #### cons list 的更多内容
|
> #### cons list 的更多内容
|
||||||
>
|
>
|
||||||
@ -128,7 +128,7 @@ fn main() {
|
|||||||
<span class="caption">Listing 15-5: Definition of `List` that uses `Box<T>` in
|
<span class="caption">Listing 15-5: Definition of `List` that uses `Box<T>` in
|
||||||
order to have a known size</span>
|
order to have a known size</span>
|
||||||
|
|
||||||
这样编译器就能够计算出储存一个`List`值需要的大小了。Rust 将会检查`List`,同样的从`Cons`成员开始检查。`Cons`成员需要`i32`的大小加上一个`usize`的大小,因为 box 总是`usize`大小的,不管它指向的是什么。接着 Rust 检查`Nil`成员,它并储存一个值,所以`Nil`并不需要任何空间。我们通过 box 打破了这无限递归的连锁。图 15-6 展示了现在`Cons`成员看起来像什么:
|
这样编译器就能够计算出储存一个`List`值需要的大小了。Rust 将会检查`List`,同样的从`Cons`成员开始检查。`Cons`成员需要`i32`的大小加上一个`usize`的大小,因为 box 总是`usize`大小的,不管它指向的是什么。接着 Rust 检查`Nil`成员,它并不储存一个值,所以`Nil`并不需要任何空间。我们通过 box 打破了这无限递归的连锁。图 15-6 展示了现在`Cons`成员看起来像什么:
|
||||||
|
|
||||||
<img alt="A finite Cons list" src="img/trpl15-02.svg" class="center" />
|
<img alt="A finite Cons list" src="img/trpl15-02.svg" class="center" />
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user