考虑以下代码
fn main() {
let s = (&&0,);
let (x,) = s; // &&i32
let (&y,) = s; // &i32
let (&&z,) = s; // i32
let t = &(&0,);
let (x,) = t; // &&i32
let (&y,) = t; // i32
let u = &&(0,);
let (x,) = u; // &i32
let (&y,) = u; // mismatched types expected type `{integer}` found reference `&_`
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下,为什么&模式在每种情况下表现不同?我想它以某种方式与人体工程学相匹配,也许一些强制起作用了?但我无法理解它。