summaryrefslogtreecommitdiff
path: root/move_semantics/move_semantics1.rs
diff options
context:
space:
mode:
Diffstat (limited to 'move_semantics/move_semantics1.rs')
-rw-r--r--move_semantics/move_semantics1.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/move_semantics/move_semantics1.rs b/move_semantics/move_semantics1.rs
new file mode 100644
index 0000000..f109765
--- /dev/null
+++ b/move_semantics/move_semantics1.rs
@@ -0,0 +1,42 @@
+// Make me compile! Scroll down for hints :)
+
+pub fn main() {
+ let vec0 = Vec::new();
+
+ let vec1 = fill_vec(vec0);
+
+ println!("{} has length {} content `{:?}`", "vec1", vec1.len(), vec1);
+
+ vec1.push(88);
+
+ println!("{} has length {} content `{:?}`", "vec1", vec1.len(), vec1);
+
+}
+
+fn fill_vec(vec: Vec<i32>) -> Vec<i32> {
+ let mut vec = vec;
+
+ vec.push(22);
+ vec.push(44);
+ vec.push(66);
+
+ vec
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// So you've got the "cannot borrow immutable local variable `vec1` as mutable" error on line 8,
+// right? The fix for this is going to be adding one keyword, and the addition is NOT on line 8
+// where the error is.