【发布时间】:2020-05-04 05:50:38
【问题描述】:
pub struct Entity {
name: String,
}
fn walk<T>(entity: T) {
eprintln!("{} walked", entity.name);
}
目前以下代码无法编译,因为类型 T 没有name 字段。
我知道 rust 有特征界限,是否有一些“字段界限”?
我真的必须:
trait HasName {}
impl HasName for Entity {}
fn walk<T: HasName>(entity: T) {
eprintln!("{}", entity.name);
}
哦等等,那也不会编译!
Here's a working example
我的意思是,肯定有比那个更简单的东西。
也许某种结构解构,比如在 javascript 中?
【问题讨论】:
-
@joelb 我必须通知您,我已经将当前答案标记为已解决,我不再需要答案,但谢谢
-
好的,保罗。当我的评论开始出现时,这是因为我建议堆栈溢出这个问题是重复的。根据审查,它可能会关闭