【发布时间】:2014-08-10 07:43:11
【问题描述】:
我想要以下两个枚举。但是,由于LargestMagnitude 和SmallestMagnitude 的“重复定义”,下面的代码编译失败。
enum SymmetricWhich {
LargestMagnitude,
SmallestMagnitude,
LargestAlgebraic,
SmallestAlgebraic,
BothEnds,
}
enum NonsymmetricWhich {
LargestMagnitude,
SmallestMagnitude,
LargestRealPart,
SmallestRealPart,
LargestImaginaryPart,
SmallestImaginaryPart,
}
如何避免这种重复的定义?有什么方法不需要在其中一个中重命名枚举值?我考虑了将重复的值移动到第三个枚举的可能性(在下面给出为CommonWhich),希望我可以从 is 作为基类“派生”,但我不清楚 Rust 是否(或如何)支持这个。
enum CommonWhich {
LargestMagnitude,
SmallestMagnitude,
}
最好的方法是什么?
【问题讨论】:
-
@dbaupp 我真正的问题是如何避免重复定义;扩展枚举是我尝试的解决方案。 ChrisMorgan 在下面回答了我——最好的方法是将每个枚举放在一个单独的模块中。