Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct TestObject {
- v: i32
- }
- trait DropSelf {
- fn drop_self(&mut self) {
- println!("---- drop_self call");
- }
- }
- impl TestObject {
- fn show(v: &mut i32) {
- println!("show called {}",v);
- }
- fn test_mut(&mut self) {
- //self.v += 1;
- println!("self.v = {}", self.v);
- }
- }
- impl Drop for TestObject {
- //我这里的函数签名是&mut self,但我传一个引用,也可以i编译过
- fn drop(&mut self) {
- self.drop_self();
- println!("drop called");
- }
- }
- impl DropSelf for TestObject {}
- fn main() {
- let m = TestObject {v:1};
- let mut data = 2;
- TestObject::show(&mut data); //这样就无法编译
- //drop(m);
- //m.test_mut();
- m.drop_self();
- }
Add Comment
Please, Sign In to add comment