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
[]coincide con un slice vacío,[only]con exactamente un elemento.[first, .., last]necesita al menos dos elementos.rest @ ..vincula el resto como un slice.
Palabras clave y builtins usados aquí
Stringfni32ifletmatch
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.
Paso 4 de 4 en Coincidencia de patrones; paso 22 de 39 en Fundamentos del lenguaje.