Operator . jest używany do uzyskiwania dostępu do pól i metod referencji. Działa on odrobinę bardziej subtelnie.
let f = Foo { value: 42 };
let ref_ref_ref_f = &&&f;
println!("{}", ref_ref_ref_f.value);
O rety, dlaczego nie musieliśmy dodać *** przed ref_ref_ref_f? Dzieje się tak dlatego, że operator . automatycznie dereferencjonuje sekwencję referencji. Ta ostatnia linia zostaje automatycznie zamieniona przez kompilator na poniższą:
println!("{}", (***ref_ref_ref_f).value);