Translate

viernes, 11 de agosto de 2023

Structs en Rust

 


Al igual que C y C++, Rust tiene soporte para estructuras:


struct Person {

    name: String,

    age: u8,

}


fn main() {

    let mut peter = Person {

        name: String::from("Peter"),

        age: 27,

    };

    println!("{} is {} years old", peter.name, peter.age);

    

    peter.age = 28;

    println!("{} is {} years old", peter.name, peter.age);

    

    let jackie = Person {

        name: String::from("Jackie"),

        ..peter

    };

    println!("{} is {} years old", jackie.name, jackie.age);

}

Las estructuras funcionan como en C o C++.

  • Al igual que en C++, ya diferencia de C, no se necesita typedef para definir un tipo.
  • A diferencia de C++, no hay herencia entre estructuras.
  • Los métodos se definen en un bloque impl, que veremos más adelante.
  • Este puede ser un buen momento para que la gente sepa que hay diferentes tipos de estructuras.
  • Estructuras de tamaño cero, por ejemplo, struct Foo; podría usarse al implementar un rasgo en algún tipo pero no tiene ningún dato que desee almacenar en el valor mismo.
  • Ls estructuras Tuple, que se utilizan cuando los nombres de los campos no son importantes.
  • La sintaxis ..peter nos permite copiar la mayoría de los campos de la estructura anterior sin tener que escribirlos todos explícitamente. Siempre debe ser el último elemento.