Generics 如何确保泛型类型具有特定字段 发布结构实体{ 名称:String, } fn:T{ eprintln!{},entity.name; }

Generics 如何确保泛型类型具有特定字段 发布结构实体{ 名称:String, } fn:T{ eprintln!{},entity.name; },generics,rust,Generics,Rust,目前,以下代码未编译,因为类型t没有名称字段。 我知道铁锈有特征界限,有领域界限吗 我真的必须: 特征HasName{} 实体{}的impl HasName fn:T{ eprintln!{},entity.name; } 哦,等等,那也不能编译! 我是说,肯定有比这更简单的事情。 可能是javascript中的某种结构-解构?目前,traits中不能有相关字段,请参阅 但是,您可以向trait添加一个函数,就像您链接的示例一样。但是,您可以省略生命周期: pub trait HasName

目前,以下代码未编译,因为类型t没有名称字段。 我知道铁锈有特征界限,有领域界限吗

我真的必须:

特征HasName{} 实体{}的impl HasName fn:T{ eprintln!{},entity.name; } 哦,等等,那也不能编译!

我是说,肯定有比这更简单的事情。
可能是javascript中的某种结构-解构?

目前,traits中不能有相关字段,请参阅

但是,您可以向trait添加一个函数,就像您链接的示例一样。但是,您可以省略生命周期:

pub trait HasName {
    fn name(&self) -> &str;
}

impl HasName for Entity {
    fn name(&self) -> &str {
        &self.name
    }
}

当前不能在traits中有关联字段,请参阅

但是,您可以向trait添加一个函数,就像您链接的示例一样。但是,您可以省略生命周期:

pub trait HasName {
    fn name(&self) -> &str;
}

impl HasName for Entity {
    fn name(&self) -> &str {
        &self.name
    }
}

这回答了你的问题吗@joelb我必须通知您,我已经将当前的答案标记为已解决,我不再需要答案,但感谢保罗。当一条以我的开始的评论出现时,这是因为我建议堆栈溢出,这个问题是重复的。根据审查情况,这可能会很难回答您的问题@joelb我必须通知您,我已经将当前的答案标记为已解决,我不再需要答案,但感谢保罗。当一条以我的开始的评论出现时,这是因为我建议堆栈溢出,这个问题是重复的。根据评论,我可能已经读到了RFC,它仍然需要一个trait impl,我只需要这样的东西。对不起,如果你不明白的话,我发誓这次要在21:00睡觉,看看我现在我没有,现在我在睡觉。或者更好的是,不要那样做。Traits是Rust用来表示泛型的,它们不是结构化的,正如父级所指出的,它们不支持相关字段。我读过RFC,它仍然需要trait impl,我只需要类似的东西。对不起,如果你不明白的话,我发誓这次要在21:00睡觉,看看我现在我没有,现在我在睡觉。或者更好的是,不要那样做。特质是Rust用于泛型的,它们不是结构性的,正如父项所指出的,它们不支持相关字段。