move_semantics2 solution

This commit is contained in:
mo8it
2024-06-21 17:02:50 +02:00
parent 946c29679e
commit 68142aff7f
3 changed files with 35 additions and 14 deletions
+3 -9
View File
@@ -352,16 +352,10 @@ When running this exercise for the first time, you'll notice an error about
"borrow of moved value". In Rust, when an argument is passed to a function and
it's not explicitly returned, you can't use the original variable anymore.
We call this "moving" a variable. When we pass `vec0` into `fill_vec`, it's
being "moved" into `vec1`, meaning we can't access `vec0` anymore after the
fact.
being "moved" into `vec1`, meaning we can't access `vec0` anymore.
Rust provides a couple of different ways to mitigate this issue, feel free to
try them all:
1. You could make another, separate version of the data that's in `vec0` and
pass that to `fill_vec` instead.
2. Make `fill_vec` borrow its argument instead of taking ownership of it,
and then copy the data within the function (`vec.clone()`) in order to
return an owned `Vec<i32>`.
You could make another, separate version of the data that's in `vec0` and
pass it to `fill_vec` instead.
"""
[[exercises]]