关于struct中String字段的问题不理解的地方,请明白人给讲解一下,万分感谢!!!
struct User {
active: bool,
username: String,
email: String,
sign_in_count: u64,
}
fn main() {
// –snip–
let user1 = User {
email: String::from("someone@example.com"),
username: String::from("someusername123"),
active: true,
sign_in_count: 1,
};
let user2 = User {
active: user1.active,
username: user1.username,
email: String::from("another@example.com"),
sign_in_count: user1.sign_in_count,
};
}
其中user2.username使用user1.username,致使user1.username变的不可用,但user1是不可变的,这是否违背了不可变变量的准则?
关于 LearnKu
这个只有所有权转移问题吧
说的对,但其作为struct中的一个字段,尤其是不可变变量user1,竟然使其变量突然变化,难道不是违背了不可变变量的安全规则了吗?
只是user1.usename字段我在重新赋值之前,无法再读取该值,也就是该值不可用,是不是相当于已经直接将该值置Null,等于未赋值状态?也就是等于改变了该值?改变了变量user1?