阴影中没有“让”

时间:2019-01-06 23:33:05

标签: rust shadowing

据我所知,Rust中的阴影允许您通过使用let并重新声明该变量来使用相同的变量,例如

let x = 5;

let x = x + 1;

let x = x * 2;

println!("The value of x is: {}", x);

但是,如果您使变量可变,那不是模仿阴影,例如:

let mut x = 5;
println!("The value of x is: {}", x);
x = 6;
println!("The value of x is: {}", x);
 x = 7;
println!("The value of x is: {}", x);

在示例1和2中,在堆栈或堆中将变量存储在哪里?

1 个答案:

答案 0 :(得分:1)

示例中的所有值都存储在堆栈中。在示例1中,每个let语句都将一个新值压入堆栈。

您似乎从The Rust Programming Language获得了示例。也许再次阅读本段以强调:

  

mut和阴影之间的另一个区别是,因为我们   当我们再次使用let关键字时,有效地创建了一个新变量,   我们可以更改值的类型,但可以重复使用相同的名称。