是否可以通过 Rust 中同一枚举的另一个变体来引用枚举的变体?
一些想象的代码:
enum Message{
Text(String),
Secret(Self::Text)
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,你不能。Message是一种类型,但Message::Text不是,并且不能在使用类型的地方使用。
在这种情况下,简单的解决方案就是只Secret持有String. 但是,假设您的实际用例有点复杂,一般策略是将其拉出到另一个结构中:
enum Message {
Text(MessageData),
Secret(MessageData),
}
struct MessageData {
foo: Bar,
// lots of other fields
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1137 次 |
| 最近记录: |