mirror of
https://github.com/darkicewolf50/RustBrock.git
synced 2025-06-16 05:24:17 -06:00
21 lines
877 B
Markdown
21 lines
877 B
Markdown
# Generic Types, Traits, and Lifetimes
|
|
|
|
|
|
# Generics
|
|
A tools for effectively handling the duplication of concepts.
|
|
|
|
One of these tools is *generics*
|
|
|
|
They are abstract stand-ins for concrete types or other properties
|
|
|
|
We can express the behavior of generics or how they relate to other generics without knowing what type that will be in place when copiling and running the code.
|
|
|
|
Functions can either take parameters of some generic type or a concrete type (like a `i32` or `String`) in the same way they take parameters with unknwon values to run the same code on multiple concrete values
|
|
|
|
One examle where concrete values were already used was with `Option<T>`, `Vec<T>`, `HashMap<K, V>` and `Result<T, E>`
|
|
|
|
This chapter covers 3 things
|
|
1. [Reducing Code duplication](Reducing Code Duplication.md)
|
|
1. [Generics](Generics.md)
|
|
1. [Traits](Traits.md)
|
|
1. [Lifetimes](Lifetimes.md) |