You've already forked comprehensive-rust
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:
@@ -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 {
|
||||
fn new(name: String, age: u8) -> Self {
|
||||
Self { name, age }
|
||||
}
|
||||
}
|
||||
```
|
||||
```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.
|
||||
|
Reference in New Issue
Block a user