Rust ツアー 目次

`.` 演算子

. 演算子は、参照のフィールドやメソッドへのアクセスに使用されます。これは少し分かりにくい動作をします。

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);