我試圖要求一個泛型型別可以通過 const ref 索引到另一個泛型:
struct A<T, I> where T: Index<&I> {
t: T,
some_more_uses_of_I...
}
它不會編譯要求我為 &I 提供一生。當我將其更改為&'_ I編譯器時,會抱怨“'_不能在此處使用”和“'_是保留的生命周期名稱”。我怎樣才能讓它作業?據我所知,生命周期沒有真正的需要,參考必須僅在執行期間處于活動狀態[],我相信我不應該將它系結到任何其他物件。
uj5u.com熱心網友回復:
不知道你是如何使用這個結構的,很難說。但聽起來您可以使用排名更高的特征邊界,以便約束在整個生命周期內是通用的:
struct A<T, I>
where
T: for<'a> Index<&'a I>
{
t: T,
some_more_uses_of_I...
}
uj5u.com熱心網友回復:
這應該是編譯
struct A<'a, T, I>
where T: Index<&'a I> {
t: T
}
您可以在https://doc.rust-lang.org/book/ch10-03-lifetime-syntax.html#lifetime-annotations-in-struct-definitions 中查看更多資訊
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/311201.html
上一篇:來自基類的C#泛型方法
