Sintaxe Abreviada de Campos
Se você já tiver variáveis com os nomes corretos, poderá criar a estrutura (struct) usando uma abreviação:
#[derive(Debug)] struct Pessoa { nome: String, idade: u8, } impl Pessoa { fn new(nome: String, idade: u8) -> Pessoa { Pessoa { nome, idade } } } fn main() { let pedro = Pessoa::new(String::from("Pedro"), 27); println!("{pedro:?}"); }
-
A função
new
poderia ser escrita utilizandoSelf
como tipo, já que ele é intercambiável com o nome da struct#[derive(Debug)] struct Person { name: String, age: u8, } impl Person { fn new(name: String, age: u8) -> Self { Self { name, age } } }
-
Implemente a trait
Default
(Padrão) para a struct. Defina alguns campos e utilize valores padrão para os demais.#[derive(Debug)] struct Pessoa { nome: String, idade: u8, } impl Default for Pessoa { fn default() -> Pessoa { Pessoa { nome: "Robô".to_string(), idade: 0, } } } fn create_default() { let tmp = Pessoa { ..Pessoa::default() }; let tmp = Pessoa { nome: "Sam".to_string(), ..Pessoa::default() }; }
-
Métodos são definidos no bloco
impl
. -
Use a sintaxe de atualização de estruturas para definir uma nova
struct
usandopedro
. Note que a variávelpedro
não será mais acessível após. -
Utilize
{:#?}
para imprimir structs utilizando a representação de depuração (Debug
).