假设我们有一个变量(在用于其预期目的之后)不应该永远被访问。
(就 Rust 而言,这样做可能是有效的,但其内容在应用程序的上下文中在逻辑上不再有效)。
例如,在 Python 中,您可以简单地执行以下操作:
del myvar;
有没有办法禁止将来访问在函数体中声明的变量或作为参数传递的引用?
请注意,通常可以为此使用范围,但这不适用于函数参数。
最佳答案
有一个丑陋的解决方法甚至适用于 Copy
值:阴影。
enum Void {}
fn foo(x: i32) -> whatever {
println!("{}", x);
let x: Void;
// Now `x` refers to an uninitialized variable with which you
// couldn't do anything even if it was initialized
}
但是,错误消息很可怕,而且意图也很不明确。我强烈建议您重新考虑您是否非常需要这种能力。郑重声明,我从未见过在 Python 代码中将明确的 del
用于此目的。我也不记得在我读过的任何其他代码中有这样的事情。
关于scope - 可以防止访问范围内声明的变量或作为函数参数的变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39264143/