diff options
| author | fmoko <mokou@posteo.de> | 2020-05-30 17:58:31 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-30 17:58:31 +0200 |
| commit | 73e848e96f8e7e59177c86ff6b2c17a072a0eca9 (patch) | |
| tree | e7783a26def590f9a9c47cf96b724d75df4ed9ff | |
| parent | 5f0806967c4e3129cb23b77b5fe00fbd047b3542 (diff) | |
| parent | 173bb14140c5530cbdb59e53ace3991a99d804af (diff) | |
Merge pull request #416 from danwilhelm/traits-readme
feat: Add traits README
| -rw-r--r-- | exercises/traits/README.md | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/exercises/traits/README.md b/exercises/traits/README.md new file mode 100644 index 0000000..1ce46fe --- /dev/null +++ b/exercises/traits/README.md @@ -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)
\ No newline at end of file |
