需要掌控自己的典型用例是什么?

时间:2015-09-14 17:25:46

标签: rust

在Rust书Method Syntax chapter中,有一个取得自我所有权的例子:

struct Circle {
    x: f64,
    y: f64,
    radius: f64,
}

impl Circle {
    fn reference(&self) {
        println!("taking self by reference!");
    }

   fn mutable_reference(&mut self) {
       println!("taking self by mutable reference!");
   }

   fn takes_ownership(self) {
      println!("taking ownership of self!");
   }
}

需要拥有自己的典型用例是什么?是否只有当self是堆栈中的值(它将被复制的位置)时?

1 个答案:

答案 0 :(得分:3)

当方法使对象失效时,获取所有权是有意义的。想象一个方法Iterator.drop(u32),实现为返回一个新对象而不是修改现有对象。在原始迭代器上调用其他方法会导致不一致。

此类失效的其他示例将是不同类型的包装器。