1
0
mirror of https://github.com/rust-lang/rustlings.git synced 2024-11-09 22:31:41 +01:00
rustlings/exercises/15_traits
2024-06-27 12:29:25 +02:00
..
README.md Update Exercises Directory Names to Reflect Order 2023-10-16 07:37:12 -04:00
traits1.rs traits1 solution 2024-06-27 03:04:57 +02:00
traits2.rs traits2 solution 2024-06-27 11:58:44 +02:00
traits3.rs traits3 solution 2024-06-27 12:11:57 +02:00
traits4.rs traits4 solution 2024-06-27 12:23:33 +02:00
traits5.rs traits5 solution 2024-06-27 12:29:25 +02:00

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 {})
  • Debug (which allows formatted display via {:?})

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

Further information