typestar

Structs de tupla y unitarios en Rust

Structs sin nombres de campo: newtypes para el significado, structs unitarios como marcadores.

struct Meters(f64);
struct Rgb(u8, u8, u8);
struct Marker;

impl Meters {
    fn feet(&self) -> f64 {
        self.0 * 3.28084
    }
}

fn main() {
    let height = Meters(1.82);
    println!("{:.2} ft", height.feet());

    let accent = Rgb(124, 92, 255);
    println!("#{:02x}{:02x}{:02x}", accent.0, accent.1, accent.2);

    let _marker = Marker;
}

Cómo funciona

  1. Los campos de un struct de tupla se alcanzan por posición: .0.
  2. Un newtype envuelve un valor para darle un tipo distinto.
  3. Un struct unitario no lleva datos, solo su identidad.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
316
Tokens
101
Ritmo de tres estrellas
85 tpm

Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 71 segundos.

Escribe este fragmento

Paso 3 de 4 en Valores compuestos; paso 9 de 39 en Fundamentos del lenguaje.

← Anterior Siguiente →