mirror of
https://github.com/sunface/rust-by-practice.git
synced 2025-06-23 04:29:41 +00:00
update vector/slicing exercise solution w/ mutable slice material
This commit is contained in:
@ -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!");
|
||||
}
|
||||
```
|
||||
|
||||
|
Reference in New Issue
Block a user