1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-08-14 20:42:44 +02:00

Create default.md (#370)

* Create default.md

* Update SUMMARY.md

* Update SUMMARY.md

* Update default.md

* Update default.md

* Update default.md
This commit is contained in:
Charisee Chiw
2023-03-07 08:11:43 -08:00
committed by GitHub
parent 64340562ea
commit 3242afae09

View File

@@ -26,13 +26,44 @@ fn main() {
* The `new` function could be written using `Self` as a type, as it is interchangeable with the struct type name
```rust,ignore
impl Person {
```rust,editable
#[derive(Debug)]
struct Person {
name: String,
age: u8,
}
impl Person {
fn new(name: String, age: u8) -> Self {
Self { name, age }
}
}
```
}
```
* Implement the `Default` trait for the struct. Define some fields and use the default values for the other fields.
```rust,editable
#[derive(Debug)]
struct Person {
name: String,
age: u8,
}
impl Default for Person {
fn default() -> Person {
Person {
name: "Bot".to_string(),
age: 0,
}
}
}
fn create_default() {
let tmp = Person {
..Default::default()
};
let tmp = Person {
name: "Sam".to_string(),
..Default::default()
};
}
```
* Methods are defined in the `impl` block.
* Use struct update syntax to define a new structure using `peter`. Note that the variable `peter` will no longer be accessible afterwards.