我有一个普通特征Fruit
和一个扩展特征WeightedFruit
。 Rust编译器在Fruit
中接受LinkedList
特征,但在WeightedFruit
中不接受BTreeSet
。应该更改什么才能使排序集合有效?
pub trait Fruit { }
pub trait WeightedFruit: Fruit + Ord { }
pub fn main() {
let unsorted: LinkedList<Box<Fruit>> = LinkedList::new();
let sorted: BTreeSet<Box<WeightedFruit>> = BTreeSet::new();
}
错误消息是:
the trait `WeightedFruit` cannot be made into an object
trait `WeightedFruit: std::cmp::Ord` not satisfied
...