diff options
| author | Steve Klabnik <steve@steveklabnik.com> | 2015-03-08 10:49:13 -0400 |
|---|---|---|
| committer | Steve Klabnik <steve@steveklabnik.com> | 2015-03-08 10:49:13 -0400 |
| commit | 044b3bf2d74de0b265e76fa5d0c735cdb15df690 (patch) | |
| tree | 4e961648be109ce02c56bfc486dd27118af4bbee /src | |
| parent | b2f09c1165db805ed00707257dd94bb309faf0fe (diff) | |
| download | rust-044b3bf2d74de0b265e76fa5d0c735cdb15df690.tar.gz rust-044b3bf2d74de0b265e76fa5d0c735cdb15df690.zip | |
Add examples of all three syntaxes in method syntax chapter of trpl
Fixes #18787
Diffstat (limited to 'src')
| -rw-r--r-- | src/doc/trpl/method-syntax.md | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/doc/trpl/method-syntax.md b/src/doc/trpl/method-syntax.md index 64d540582a3..b814ff16abb 100644 --- a/src/doc/trpl/method-syntax.md +++ b/src/doc/trpl/method-syntax.md @@ -50,7 +50,28 @@ You can think of this first parameter as being the `x` in `x.foo()`. The three variants correspond to the three kinds of thing `x` could be: `self` if it's just a value on the stack, `&self` if it's a reference, and `&mut self` if it's a mutable reference. We should default to using `&self`, as it's the most -common. +common. Here's an example of all three variants: + +```rust +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!"); + } +``` Finally, as you may remember, the value of the area of a circle is `π*r²`. Because we took the `&self` parameter to `area`, we can use it just like any |
