我在Rust书中看到,您可以使用相同的名称定义两个不同的变量:
let hello = "Hello";
let hello = "Goodbye";
println!("My variable hello contains: {}", hello);
Run Code Online (Sandbox Code Playgroud)
打印出:
My variable hello contains: Goodbye
Run Code Online (Sandbox Code Playgroud)
第一次打招呼怎么了?它被释放了吗?我怎么能访问它?
我知道将两个变量命名为相同会很糟糕,但如果这种情况偶然发生,因为我将其声明为100行以下,这可能是一个真正的痛苦.
在下面的程序的第2行中分配了一个矢量资源.程序结束时,不拥有矢量资源.如果资源根本不归属,那么它何时被回收?是否有使用Rust所有权语义和生命周期术语的解释可能使程序员相信该资源确实被回收了?
fn main() {
let mut v = vec![1,2];
v = vec![3, 4];
}
Run Code Online (Sandbox Code Playgroud)