据我所知,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中,在堆栈或堆中将变量存储在哪里?
答案 0 :(得分:1)
示例中的所有值都存储在堆栈中。在示例1中,每个let
语句都将一个新值压入堆栈。
您似乎从The Rust Programming Language获得了示例。也许再次阅读本段以强调:
mut
和阴影之间的另一个区别是,因为我们 当我们再次使用let
关键字时,有效地创建了一个新变量, 我们可以更改值的类型,但可以重复使用相同的名称。