diff --git a/en/src/collections/vector.md b/en/src/collections/vector.md index 63a2594..ea16799 100644 --- a/en/src/collections/vector.md +++ b/en/src/collections/vector.md @@ -111,9 +111,9 @@ fn main() { ### Slicing -A Vec can be mutable. On the other hand, slices are read-only objects. To get a slice, use `&`. +Immutable or mutable slices of Vecs can be taken, using `&` or `&mut, respectively. -In Rust, itโ€™s more common to pass slices as arguments rather than vectors when you just want to provide read access. The same goes for `String` and `&str`. +In Rust, itโ€™s more common to pass immutable slices as arguments rather than vectors when you just want to provide read access. The same goes for `String` and `&str`. 5. ๐ŸŒŸ๐ŸŒŸ ```rust,editable @@ -129,14 +129,16 @@ fn main() { assert_eq!(slice1, slice2); - // Slices are read only + // Slices can also be mutable, in which + // case mutating them will mutate the underlying Vec // Note: slice and &Vec are different let vec_ref: &mut Vec = &mut v; (*vec_ref).push(4); let slice3 = &mut v[0..3]; - slice3.push(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!"); }