提问人:KianFakheriAghdam 提问时间:2/5/2023 更新时间:2/5/2023 访问量:63
每次赋值后 Rust 可变值会发生什么情况 [duplicate]
what happens to a rust mutable value after each assignment [duplicate]
问:
下面是动态可变值的两个示例。
pub fn main() {
let mut x = String::from("Hello");
println!("{}", x);
x = format!("{x}, world!");
println!("{}", x);
}
所以正如你所看到的,我们有一个可变变量。 被 借用 & 变成一个新值,然后该值被赋值回 。x
x
format!
x
pub fn main() {
let mut x = String::from("Hello, world!");
println!("{}", x);
x = String::from("Lorem, ipsum!");
println!("{}", x);
}
我真正的问题是这段代码,其中赋值与其初始值无关。变量只能对单个值进行所有权,那么 Rust 如何跟踪 “Hello, world!” & “Lorem, ipsum!”?赋值后可变值究竟会发生什么?x
我的猜测是,它会检查分配给的值是否取决于第一个值,如果是,它不会删除它。
答: 暂无答案
评论
x
format!
String
format!
String
x = takes_ownership_and_gives_back(x)