Трейт Default
Трейт Default створює значення за замовчуванням для типу.
#[derive(Debug, Default)] struct Derived { x: u32, y: String, z: Implemented, } #[derive(Debug)] struct Implemented(String); impl Default for Implemented { fn default() -> Self { Self("John Smith".into()) } } fn main() { let default_struct = Derived::default(); println!("{default_struct:#?}"); let almost_default_struct = Derived { y: "Y встановлено!".into(), ..Derived::default() }; println!("{almost_default_struct:#?}"); let nothing: Option<Derived> = None; println!("{:#?}", nothing.unwrap_or_default()); }
This slide should take about 5 minutes. 
                    - Це може бути реалізовано безпосередньо або може бути отримано за допомогою 
#[derive(Default)]. - Похідна реалізація створить значення, в якому всі поля мають значення за замовчуванням.
- Це означає, що всі типи в структурі також мають реалізовувати 
Default. 
 - Це означає, що всі типи в структурі також мають реалізовувати 
 - Стандартні типи Rust часто реалізують 
Defaultіз прийнятними значеннями (наприклад,0,""тощо). - Часткова ініціалізація структур чудово працює за замовчуванням.
 - Стандартна бібліотека Rust усвідомлює, що типи можуть реалізовувати 
Defaultі надає зручні методи, які його використовують. - Синтаксис 
..називається синтаксис оновлення структури.