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