Desestructuración en Rust
Los patrones desarman structs, tuplas y valores anidados en una sola vinculación.
struct Point {
x: i32,
y: i32,
}
struct Line {
from: Point,
to: Point,
}
fn main() {
let a = Point { x: 0, y: 0 };
let b = Point { x: 3, y: 4 };
let Line { from: Point { x, y }, to } = Line { from: a, to: b };
println!("from {x},{y} to {},{}", to.x, to.y);
let (first, .., last) = (1, 2, 3, 4);
println!("{first} {last}");
}
Cómo funciona
- La forma corta de campo vincula un campo a una variable homónima.
- Los patrones anidados llegan a un struct dentro de otro struct.
..ignora las partes que no nombraste.
Palabras clave y builtins usados aquí
fni32letstruct
El intento, en números
- Líneas
- 19
- Caracteres a escribir
- 327
- Tokens
- 125
- Ritmo de tres estrellas
- 85 tpm
Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 88 segundos.
Paso 4 de 4 en Valores compuestos; paso 10 de 39 en Fundamentos del lenguaje.