This repository has been archived on 2023-03-24. You can view files and clone it, but cannot push or open issues or pull requests.
rustlings-exercises-completed/exercises/traits/README.md

20 lines
737 B
Markdown
Raw Permalink Normal View History

# Traits
2020-05-28 22:21:33 -05:00
A trait is a collection of methods.
2020-05-28 22:21:33 -05:00
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 `{}`)
- `Debug` (which allows formatted display via `{:?}`)
2020-05-28 22:21:33 -05:00
Because traits indicate shared behavior between data types, they are useful when writing generics.
## Further information
2020-05-28 22:21:33 -05:00
- [Traits](https://doc.rust-lang.org/book/ch10-02-traits.html)