Guest User

Untitled

a guest
Sep 20th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. struct TestObject {
  2. v: i32
  3. }
  4. trait DropSelf {
  5. fn drop_self(&mut self) {
  6. println!("---- drop_self call");
  7. }
  8. }
  9. impl TestObject {
  10. fn show(v: &mut i32) {
  11. println!("show called {}",v);
  12. }
  13. fn test_mut(&mut self) {
  14. //self.v += 1;
  15. println!("self.v = {}", self.v);
  16. }
  17. }
  18.  
  19. impl Drop for TestObject {
  20. //我这里的函数签名是&mut self,但我传一个引用,也可以i编译过
  21. fn drop(&mut self) {
  22. self.drop_self();
  23. println!("drop called");
  24. }
  25.  
  26.  
  27. }
  28.  
  29. impl DropSelf for TestObject {}
  30.  
  31. fn main() {
  32. let m = TestObject {v:1};
  33. let mut data = 2;
  34. TestObject::show(&mut data); //这样就无法编译
  35. //drop(m);
  36. //m.test_mut();
  37. m.drop_self();
  38. }
Add Comment
Please, Sign In to add comment