我想编写一个函数,该函数接收任何类型的数组作为参数,并返回该数组的最后一个元素,因此我尝试了以下代码:
fn main() {
let v = ["a", "b"];
println!("{}", last(&v));
}
fn last<T: Clone>(slice: &[T]) -> &T {
&slice[slice.len()-1]
}
看起来这很奏效,但是当我进行小调整时:
fn main() {
let v = ["a", "b"];
println!("{}", last(&v));
}
fn last<T: Clone>(slice: &[T]) -> T {
&slice[slice.len()-1]
}
然后我遇到了:
error[E0308]: mismatched types
--> <anon>:9:5
|
9 | &slice[n-1]
| ^^^^^^^^^^^ expected type parameter, found &T
|
= note: expected type `T`
found type `&T`
如何将&T
转换为T
?
last
的方法。 - red75prime