.运算符用于访问引用的字段和方法,它的工作原理更加巧妙。
.
let f = Foo { value: 42 }; let ref_ref_ref_f = &&&f; println!("{}", ref_ref_ref_f.value);
哇,为什么我们不需要在ref_ref_ref_f之前添加***?这是因为 . 运算符会做一些列自动解引用操作。 最后一行由编译器自动转换为以下内容。
ref_ref_ref_f
***
println!("{}", (***ref_ref_ref_f).value);