学习Rust语法我决定实现一些排序算法。所以,我决定做一个排序函数传入数组是这样的:。如何将实现特定特征的对象数组传递给函数?
fn sort(array) {
// actual sorting
}
在this question我已经发现了如何通过一个数组,并更改其内容,但besided这个数组必须由可以比较的类型。我发现了std::cmp::PartialOrd特征,并发现数组中的元素需要实现它。
通过锈书连接这方面的知识同款约dynamic dispatch我已经建立了这样的事情:
use std::cmp;
fn sort(arr: &mut [&std::cmp::PartialOrd]) {
// actual sorting
}
但它不会出错编译:
error: the type parameter `Rhs` must be explicitly specified in an object type because its default value `Self` references the type `Self` [E0393]
是否有正确的语法来实现将实现特定特征的对象数组传递给函数?
也许还需要注意:'&mut [&Trait]'是实现'Trait'的类型元素的一部分引用。这些元素存储在其他地方,而不是连续的在数组中(这是不可能的,因为数组是相同的)。排序引用数组很少是用户想要的。 –