Skip to content

Commit

Permalink
Merge pull request #416 from danwilhelm/traits-readme
Browse files Browse the repository at this point in the history
feat: Add traits README
  • Loading branch information
fmoko authored May 30, 2020
2 parents 5f08069 + 173bb14 commit 73e848e
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions exercises/traits/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
### Traits

A trait is a collection of methods.

Data types can implement traits. To do so, the methods making up the trait are defined for the data type. For example, the `String` data type implements the `From<&str>` trait. This allows a user to write `String::from("hello")`.

In this way, traits are somewhat similar to Java interfaces and C++ abstract classes.

Some additional common Rust traits include:

+ `Clone` (the `clone` method),
+ `Display` (which allows formatted display via `{}`), and
+ `Debug` (which allows formatted display via `{:?}`).

Because traits indicate shared behavior between data types, they are useful when writing generics.


#### Book Sections

- [Traits](https://doc.rust-lang.org/book/ch10-02-traits.html)

0 comments on commit 73e848e

Please sign in to comment.