Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.31s
Running `target/debug/variables`
The value of x in the inner scope is: 12
The value of x is: 6
复制代码
这个步伐首先将 x 绑定到值 5 上。接着通过 let x = 创建了一个新变量 x,获取初始值并加 1,如许 x 的值就变成 6 了。然后,在使用花括号创建的内部作用域内,第三个 let 语句也隐藏了 x 并创建了一个新的变量,将之前的值乘以 2,x 得到的值是 12。当该作用域结束时,内部 shadowing 的作用域也结束了,x 又返回到 6。
mut 与隐藏的另一个区别是,当再次使用 let 时,现实上创建了一个新变量,我们可以改变值的范例,并且复用这个名字。比方,假设步伐请求用户输入空格字符来说明希望在文本之间表现多少个空格: