Sintaxis abreviada de campos
Si ya dispones de variables con los nombres adecuados, puedes crear la estructura con un método abreviado:
#[derive(Debug)] struct Person { name: String, age: u8, } impl Person { fn new(name: String, age: u8) -> Person { Person { name, age } } } fn main() { let peter = Person::new(String::from("Peter"), 27); println!("{peter:?}"); }
-
La función
new
se podría escribir utilizandoSelf
como tipo, ya que es intercambiable con el nombre de tipo de estructura.#[derive(Debug)] struct Person { name: String, age: u8, } impl Person { fn new(name: String, age: u8) -> Self { Self { name, age } } }
-
Implementa el trait
Default
en la estructura. Define algunos campos y usa los valores predeterminados para el resto de los campos.#[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 { ..Person::default() }; let tmp = Person { name: "Sam".to_string(), ..Person::default() }; }
-
Los métodos se definen en el bloque
impl
. -
Utiliza la sintaxis de actualización de estructuras para definir una estructura nueva con
peter
. Ten en cuenta que, después, ya no podrás acceder a la variablepeter
. -
Utiliza
{:#?}
al imprimir estructuras para solicitar la representación deDebug
.