rust 不管泛型类型是什么,都可以实现结构,而无需大量重复代码

kqqjbcuj  于 2023-03-30  发布在  其他
关注(0)|答案(1)|浏览(130)

这个结构体包含一个需要有很多不同特征的字段。

struct ManyRequirements<T> 
    where
        T:Ord,
        T:Copy,
        T:Clone,
        T:Iterator,
        T:Display
{
    something: T
}

我想为它写一个方法,不管T如何工作,比如一个“new”方法。我只想能够说ManyRequirements::new()并让它正常工作。但是如果我尝试了,

impl ManyRequirements {
    fn new() {

    }
}

impl<T> ManyRequirements<T> {
    fn new() {

    }
}

我得到

the trait bound `T: Ord` is not satisfied
the trait `Ord` is not implemented for `T`

对于每个trait T都重复执行。唯一起作用的是

impl <T> ManyRequirements<T> 
    where
        T:Ord,
        T:Copy,
        T:Clone,
        T:Iterator,
        T:Display
{

}

有没有更短的方法来表达“T可以是任何东西”?比如

impl <_> ManyRequirements<_> 
{

}

相关问题