mirror of
https://github.com/google/comprehensive-rust.git
synced 2025-03-21 06:36:31 +02:00
Makes ownership of self
more accurate
It’s entirely possible that a method gives ownership of self to another object, or return `self`. For example ``` fn id(self) -> Self { return self; } ``` or more realistically ``` fn or(self, other) -> Self { if (self.isValid()) { return self;} return other; } ```
This commit is contained in:
parent
264047445f
commit
3631117446
@ -8,7 +8,8 @@ are other possible receivers for a method:
|
|||||||
* `&mut self`: borrows the object from the caller using a unique and mutable
|
* `&mut self`: borrows the object from the caller using a unique and mutable
|
||||||
reference. The object can be used again afterwards.
|
reference. The object can be used again afterwards.
|
||||||
* `self`: takes ownership of the object and moves it away from the caller. The
|
* `self`: takes ownership of the object and moves it away from the caller. The
|
||||||
method becomes the owner of the object and will drop (deallocate) it at the
|
method becomes the owner of the object. The object will be drop (deallocated)
|
||||||
end of the scope.
|
when the method returns, unless it’s ownership is explicitly
|
||||||
|
transmitted.
|
||||||
* No receiver: this becomes a static method on the struct. Typically used to
|
* No receiver: this becomes a static method on the struct. Typically used to
|
||||||
create constructors which are called `new` by convention.
|
create constructors which are called `new` by convention.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user