|
|
|
@ -181,16 +181,16 @@ println!("{:?}", user1);
|
|
|
|
|
|
|
|
|
|
元组结构体在你希望有一个整体名称,但是又不关心里面字段的名称时将非常有用。例如上面的 `Point` 元组结构体,众所周知3D点是 `(x, y, z)` 形式的坐标点,因此我们无需再为内部的字段逐一命名为:`x`, `y`, `z`。
|
|
|
|
|
|
|
|
|
|
## 元结构体(Unit-like Struct)
|
|
|
|
|
还记得之前讲过的基本没啥用的[单元类型](../base-type/char-bool.md#单元类型)吧?元结构体就跟它很像,没有任何字段和属性,但是好在,它还挺有用。
|
|
|
|
|
## 单元结构体(Unit-like Struct)
|
|
|
|
|
还记得之前讲过的基本没啥用的[单元类型](../base-type/char-bool.md#单元类型)吧?单元结构体就跟它很像,没有任何字段和属性,但是好在,它还挺有用。
|
|
|
|
|
|
|
|
|
|
如果你定义一个类型,但是不关心该类型的内容, 只关心它的行为时,就可以使用 `元结构体`:
|
|
|
|
|
如果你定义一个类型,但是不关心该类型的内容, 只关心它的行为时,就可以使用 `单元结构体`:
|
|
|
|
|
```rust
|
|
|
|
|
struct AlwaysEqual;
|
|
|
|
|
|
|
|
|
|
let subject = AlwaysEqual;
|
|
|
|
|
|
|
|
|
|
// 我们不关心 AlwaysEqual 的字段数据,只关心它的行为,因此将它声明为元结构体,然后再为它实现某个特征
|
|
|
|
|
// 我们不关心 AlwaysEqual 的字段数据,只关心它的行为,因此将它声明为单元结构体,然后再为它实现某个特征
|
|
|
|
|
impl SomeTrait for AlwaysEqual {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|