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
newse podría escribir utilizandoSelfcomo 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
Defaulten 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.