【发布时间】:2020-03-24 06:43:36
【问题描述】:
如果我有一个包含如下引用的结构:
struct Struct<'a> {
reference: &'a str
}
如何为 Struct 实现 AsRef?我试过这个:
impl<'a> AsRef<Struct<'a>> for Struct<'a> {
fn as_ref(&self) -> &Struct {
self
}
}
但它无法满足编译器要求:
由于需求冲突,无法为泛型类型中的生命周期参数推断适当的生命周期
【问题讨论】:
-
你想做什么?我不确定
AsRef是否适合在您的情况下使用。你可能想要Borrow -
编译器错误很严重。您只需要为您的 Struct everywhere 显式指定生命周期参数。 fn as_ref(&self) -> &Struct
<'a>{ ... }. -
@Sahsahae 这是一个答案,不是评论
-
一两句话的答案是没有意义的,就像这条评论一样。我必须解释为什么它不能正常工作,而且我认为我做不到。