update vector/slicing exercise solution w/ mutable slice material

This commit is contained in:
mckzm
2024-06-15 13:39:12 +09:00
committed by GitHub
parent c4804e3101
commit fd0c2c50c1

View File

@ -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<i32> = &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!");
}
```