Tour of Rust 목차

. 연산자

. 연산자는 참조의 field와 메소드에 접근하는 데에 쓰입니다. 이건 좀 더 미묘하게 동작합니다.

let f = Foo { value: 42 };
let ref_ref_ref_f = &&&f;
println!("{}", ref_ref_ref_f.value);

아니, 왜 ref_ref_ref_f 앞에 ***을 안넣어도 되는거죠? 그건 바로 . 연산자가 참조 열을 자동으로 역참조 했기 때문입니다. 저 마지막 줄은 컴파일러에 의해 자동적으로 다음과 같이 바뀌게 됩니다:

println!("{}", (***ref_ref_ref_f).value);