diff --git a/solutions/collections/Vector.md b/solutions/collections/Vector.md index 7581a80..68edfba 100644 --- a/solutions/collections/Vector.md +++ b/solutions/collections/Vector.md @@ -156,21 +156,24 @@ fn main() { let mut v = vec![1, 2, 3]; let slice1 = &v[..]; - // out of bounds will cause a panic + // Out of bounds will cause a panic // You must use `v.len` here - let slice2 = &v[0..v.len()]; + let slice2 = &v[0..3]; assert_eq!(slice1, slice2); - // slice are read only + // A slice can also be mutable, in which + // case mutating it will also mutate its underlying Vec // Note: slice and &Vec are different let vec_ref: &mut Vec = &mut v; (*vec_ref).push(4); - let slice3 = &mut v[0..]; + let slice3 = &mut v[0..4]; + slice3[3] = 42; - assert_eq!(slice3, &[1, 2, 3, 4]); + assert_eq!(slice3, &[1, 2, 3, 42]); + assert_eq!(v, &[1, 2, 3, 42]); - println!("Success!") + println!("Success!"); } ```