typestar

Structs genéricos en Rust

Un struct sobre un parámetro de tipo, con bloques impl genéricos o específicos.

struct Pair<T> {
    left: T,
    right: T,
}

impl<T> Pair<T> {
    fn new(left: T, right: T) -> Self {
        Pair { left, right }
    }
}

impl<T: PartialOrd + std::fmt::Display> Pair<T> {
    fn larger(&self) -> &T {
        if self.left > self.right {
            &self.left
        } else {
            &self.right
        }
    }
}

fn main() {
    let nums = Pair::new(7, 12);
    println!("{}", nums.larger());
    println!("{}", Pair::new("fig", "apple").larger());
}

Cómo funciona

  1. El parámetro se declara en el struct y también en el impl.
  2. Un segundo bloque impl puede apuntar a un solo tipo concreto.
  3. Los métodos pueden sumar bounds que el struct mismo no necesita.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
26
Caracteres a escribir
386
Tokens
151
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 86 segundos.

Escribe este fragmento

Paso 3 de 4 en Genéricos; paso 6 de 19 en Traits y genéricos.

← Anterior Siguiente →