|
|
@ -33,7 +33,7 @@ let four = IpAddrKind::V4;
|
|
|
|
let six = IpAddrKind::V6;
|
|
|
|
let six = IpAddrKind::V6;
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
注意枚举的成员位于其标识符的命名空间中,并使用两个冒号分开。这么设计的益处是现在`IpAddrKind::V4`和`IpAddrKind::V6`是相同类型的:`IpAddrKind`。例如,接着我们可以顶一个函数来获取`IpAddrKind`:
|
|
|
|
注意枚举的成员位于其标识符的命名空间中,并使用两个冒号分开。这么设计的益处是现在`IpAddrKind::V4`和`IpAddrKind::V6`是相同类型的:`IpAddrKind`。例如,接着我们可以定义一个函数来获取`IpAddrKind`:
|
|
|
|
|
|
|
|
|
|
|
|
```rust
|
|
|
|
```rust
|
|
|
|
# enum IpAddrKind {
|
|
|
|
# enum IpAddrKind {
|
|
|
@ -279,4 +279,4 @@ not satisfied
|
|
|
|
|
|
|
|
|
|
|
|
[docs]: https://doc.rust-lang.org/std/option/enum.Option.html
|
|
|
|
[docs]: https://doc.rust-lang.org/std/option/enum.Option.html
|
|
|
|
|
|
|
|
|
|
|
|
总的来说,为了使用`Option<T>`值,需要编写处理每个成员的代码。我们想要一些代码只当拥有`Some(T)`值时运行,这些代码允许使用其中的`T`。也希望一些代码当在`None`值时运行,这些代码并没有一个可用的`T`值。`match`表达式就是这么一个处理枚举的控制流结构:它会根据枚举的成员运行不同的代码,这些代码可以使用匹配到的值中的数据。
|
|
|
|
总的来说,为了使用`Option<T>`值,需要编写处理每个成员的代码。我们想要一些代码只当拥有`Some(T)`值时运行,这些代码允许使用其中的`T`。也希望一些代码当在`None`值时运行,这些代码并没有一个可用的`T`值。`match`表达式就是这么一个处理枚举的控制流结构:它会根据枚举的成员运行不同的代码,这些代码可以使用匹配到的值中的数据。
|
|
|
|