1
Fork 0

Auto merge of #37386 - johnthagen:Self-reference-example, r=GuillaumeGomez

Add example using Self to reference

When I first came across `Self` I had a hard time finding references to it in the docs (and it's also been asked about on [StackOverflow](http://stackoverflow.com/questions/32304595/whats-the-difference-between-self-and-self).

I hope this example provides someone who comes across it for the first time a little more help.  If there is a better way to show an example actually using `Self`, I'm happy to modify this.  It was just the simplest place to start I could see.
This commit is contained in:
bors 2016-11-06 02:28:58 -08:00 committed by GitHub
commit 161f2623bd

View file

@ -3755,6 +3755,21 @@ The special type `Self` has a meaning within traits and impls. In a trait defini
to an implicit type parameter representing the "implementing" type. In an impl, to an implicit type parameter representing the "implementing" type. In an impl,
it is an alias for the implementing type. For example, in: it is an alias for the implementing type. For example, in:
```
pub trait From<T> {
fn from(T) -> Self;
}
impl From<i32> for String {
fn from(x: i32) -> Self {
x.to_string()
}
}
```
The notation `Self` in the impl refers to the implementing type: `String`. In another
example:
``` ```
trait Printable { trait Printable {
fn make_string(&self) -> String; fn make_string(&self) -> String;