References

References offer a way to access a value from multiple variables without changing ownership. They're made by putting the & symbol in front of the original variable that holds the value.

For example this code moves ownership of the String on the bravo = alfa line.

  let alfa  = String::from("apple");
  let bravo = alfa;

If we tried to access alfa after doing that we'd get the borrow of moved value error.

Adding the & like this means the value isn't moved to bravo and that alfa retains ownership.

  let alfa  = String::from("apple");
  let bravo = &alfa;

We can now use the value from both variables.