Rust 程序设计语言 简体中文版 1.85.0
来看看示例 6-2 中的另一个枚举的例子:它的变体中内嵌了多种多样的类型: enum Message { Quit, Move { x: i32, y: i32 }, Write(String), ChangeColor(i32, i32, i32), } 示例 6-2:一个 Message 枚举,其每个变体都存储了不同数量和类型的值 这个枚举有四个含有不同类型的变体: 程序设计语言 简体中文版 定义一个如示例 6-2 中所示那样的有关联值的枚举的方式和定义多个不同类型的结构体的方式 很相像,除了枚举不使用 struct 关键字以及其所有变体都被组合在一起位于 Message 类型下。 如下这些结构体可以包含与之前枚举变体中相同的数据: struct QuitMessage; // 类单元结构体 struct MoveMessage { x: i32, 我们将不能像使用示例 6-2 中 定义的 Message 枚举那样,轻易的定义一个能够处理这些不同类型的结构体的函数,因为枚举 是单独一个类型。 结构体和枚举还有另一个相似点:就像可以使用 impl 来为结构体定义方法那样,也可以在枚 举上定义方法。这是一个定义于我们 Message 枚举上的叫做 call 的方法: impl Message { fn call(&self)0 码力 | 562 页 | 3.23 MB | 8 天前3
共 1 条
- 1