struct User {
name: String,
}
impl User {
fn get_name(self) -> String {
self.name
}
}
fn main() {
let user = User {name: "aaaa".to_string()};
println!("{}", user.get_name());
println!("{}", user.name);
}
大佬,我要在user.get_name()后,继续使用user,要怎么做呢?get_name(self)是已经定了,不能改成get_name(&self)。
playground:https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=c1b3d59556f74dc1ed29de65898b1085
1
共 3 条评论, 1 页
评论区
写评论感谢,User里引用的那个我用Arc包了一层。然后User在实现Clone就可以了。
--
👇
tjz101: 是这样的,感谢。这是我模拟出来的一个代码。实际比这稍微复杂点。 就是我User里还引用了一个struct。那个struct实现Clone。
--
👇
Nayaka: ```rust #[derive(Clone)] struct User { name: String, }
impl User { fn get_name(self) -> String { self.name } }
fn main() { let user = User {name: "aaaa".to_string()}; println!("{}", user.clone().get_name()); println!("{}", user.name);
}
是这样的,感谢。这是我模拟出来的一个代码。实际比这稍微复杂点。 就是我User里还引用了一个struct。那个struct实现Clone。
--
👇
Nayaka: ```rust #[derive(Clone)] struct User { name: String, }
impl User { fn get_name(self) -> String { self.name } }
fn main() { let user = User {name: "aaaa".to_string()}; println!("{}", user.clone().get_name()); println!("{}", user.name);
}
这样?