我想要以下两个枚举。但是,由于"重复定义"以下代码无法编译。 LargestMagnitude
和SmallestMagnitude
。
enum SymmetricWhich {
LargestMagnitude,
SmallestMagnitude,
LargestAlgebraic,
SmallestAlgebraic,
BothEnds,
}
enum NonsymmetricWhich {
LargestMagnitude,
SmallestMagnitude,
LargestRealPart,
SmallestRealPart,
LargestImaginaryPart,
SmallestImaginaryPart,
}
如何避免这种重复定义?有没有办法在不需要重命名其中一个的枚举值的情况下?我考虑了将重复值移动到第三个枚举的可能性(下面给出CommonWhich
),希望我可以然后导出" from是作为一个基类,但我不清楚Rust是否支持这个(或如何)。
enum CommonWhich {
LargestMagnitude,
SmallestMagnitude,
}
最好的方法是什么?
答案 0 :(得分:2)
目前在枚举中没有任何此类子类型;所有变体都只是一种具体类型,你想要做的事情是不可能的。
您需要重命名变体以使它们保持不相交,或者将枚举放在不同的模块中。