在有人将其标记为重复之前,我知道如何修复它(并且已经得到了回答),但我想了解为什么存在此限制,并且我在这里或 Rust 文档中没有找到答案。
例如,我写了这样的东西:
struct ItemList<T> {
items: Vec<T>
}
impl<T> ItemList<T> {
fn getFirstItem(&self) -> Link<T> { Link { position: 0 } }
}
struct Link<T> {
position: usize
}
impl<T> Link<T> {
fn getFromList<'a>(&self, list: &'a ItemList<T>) -> &'a T {
&list.items[self.position]
}
}
Run Code Online (Sandbox Code Playgroud)
但 rustc 拒绝我的代码并出现以下错误:
error[E0392]: parameter `T` is never used
--> src/main.rs:8:13
|
8 | struct Link<T> {
| ^ unused parameter
|
= help: consider removing `T`, referring to it …Run Code Online (Sandbox Code Playgroud)