Chcę napisać funkcję, która pobiera tablicę z każdego rodzaju, w tym i zwraca ostatni element tablicy, więc próbowałem:Jak przekonwertować `& T` na po prostu` T`?
fn main() {
let v = ["a", "b"];
println!("{}", last(&v));
}
fn last<T: Clone>(slice: &[T]) -> &T {
&slice[slice.len()-1]
}
i że wydaje się działać, ale kiedy stosować mała korekta:
fn main() {
let v = ["a", "b"];
println!("{}", last(&v));
}
fn last<T: Clone>(slice: &[T]) -> T {
&slice[slice.len()-1]
}
Wtedy ja spotkałem się z:
error[E0308]: mismatched types
--> <anon>:9:5
|
9 | &slice[n-1]
| ^^^^^^^^^^^ expected type parameter, found &T
|
= note: expected type `T`
found type `&T`
Jak przekonwertować &T
do zaledwie T
?
wszelki wypadek, nie [metoda 'last'] (https://doc.rust-lang.org/stable/std/primitive.slice.html#method.last) dla wycinka – red75prime