The Rule of 3
There are three different ways to pass a value into a function: move it, pass by reference, and pass by mutable reference. We see this in method calls as self
, &self
, and &mut self
. This pattern of 3 appears in more places in Rust, including in iterators.
Let’s say we want to iterate over a Vec
, and then use it again. Perhaps we’d write some code like this: