rust - 没有“让”的影子
问题描述
据我了解,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 中,变量存储在堆栈或堆中的什么位置?
解决方案
您示例中的所有值都存储在堆栈中。let
在示例 1 中,为每个语句将一个新值压入堆栈。
看起来您从The Rust Programming Language中获得了示例。也许再次阅读本段以强调:
和遮蔽之间的另一个区别
mut
是,因为我们在let
再次使用关键字时有效地创建了一个新变量,所以我们可以更改值的类型但重用相同的名称。
推荐阅读
- python - 具有不同数量团队的随机团队生成器
- python - 使用魔法时无法看到在 Jupyter 笔记本中创建的绘图:%matplotlib 笔记本。Windows 10 和 Chrome
- unity3d - Agora.io - 如何在使用视频聊天时消除回声
- terraform - 速记 IF 语句中的多个“OR”条件(Terraform)
- package - 加载包的问题
- python - 如何使用 Python 从本地 PDF 文件中获取文本
- c++ - 如何在 C++ 中调用父类中的函数?
- python - Pandas - groupby 连续的整数
- android - 限制构建期间运行的 clang++.exe 实例的数量
- javascript - discord.js - 代码不会破坏所有通道,因为循环输入错误?