Operatorul .
este folosit pentru a accesa câmpurile și metodele unei referințe. Acesta funcționează într-un mod ceva mai subtil.
let f = Foo { value: 42 };
let ref_ref_ref_f = &&&f;
println!("{}", ref_ref_ref_f.value);
Whoa, de ce nu a trebuit să adaugăm ***
înainte de ref_ref_ref_f
? Pentru că operatorul .
dereferențiază automat
o secvență de referințe. Ultima linie de cod este transformată de către compilator astfel:
println!("{}", (***ref_ref_ref_f).value);