about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorSteve Klabnik <steve@steveklabnik.com>2015-03-08 10:49:13 -0400
committerSteve Klabnik <steve@steveklabnik.com>2015-03-08 10:49:13 -0400
commit044b3bf2d74de0b265e76fa5d0c735cdb15df690 (patch)
tree4e961648be109ce02c56bfc486dd27118af4bbee /src
parentb2f09c1165db805ed00707257dd94bb309faf0fe (diff)
downloadrust-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.md23
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