typestar

Patrones de slice en Rust

Coincidir con la forma de un slice: vacío, un elemento, primero y último, el medio.

fn summarize(values: &[i32]) -> String {
    match values {
        [] => "empty".to_string(),
        [only] => format!("just {only}"),
        [first, .., last] => format!("{first} to {last}"),
    }
}

fn main() {
    println!("{}", summarize(&[]));
    println!("{}", summarize(&[5]));
    println!("{}", summarize(&[1, 2, 3]));

    if let [head, tail @ ..] = &[10, 20, 30][..] {
        println!("{head} then {:?}", tail);
    }
}

Cómo funciona

  1. [] coincide con un slice vacío, [only] con exactamente un elemento.
  2. [first, .., last] necesita al menos dos elementos.
  3. rest @ .. vincula el resto como un slice.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
17
Caracteres a escribir
376
Tokens
144
Ritmo de tres estrellas
90 tpm

Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 96 segundos.

Escribe este fragmento

Paso 4 de 4 en Coincidencia de patrones; paso 22 de 39 en Fundamentos del lenguaje.

← Anterior Siguiente →