6
我想编写一个函数,它与任何类型的一个数组并返回数组的最后一个元素,所以我尝试:如何将`&T`转换为`T`?
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'](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.last)为切片 – red75prime