Translate

sábado, 12 de agosto de 2023

Tuple Structs en Rust


Si los nombres de los campos no son importantes, puede usar una estructura de tupla:


struct Point(i32, i32);

fn main() {

    let p = Point(17, 23);

    println!("({}, {})", p.0, p.1);

}


Esto se usa a menudo para envoltorios de un solo campo:


struct PoundsOfForce(f64);

struct Newtons(f64);


fn compute_thruster_force() -> PoundsOfForce {

    todo!("Ask a rocket scientist at NASA")

}


fn set_thruster_force(force: Newtons) {

    // ...

}


fn main() {

    let force = compute_thruster_force();

    set_thruster_force(force);

}

Los tipos nuevos son una excelente manera de codificar información adicional sobre el valor en un tipo primitivo, por ejemplo:
  • El número se mide en algunas unidades: Newtons en el ejemplo anterior.
  • El valor pasó cierta validación cuando se creó, por lo que ya no tendrá que volver a validarlo cada vez que lo use