typestar

Lifetimes y mutabilidad interior

11 pasos en 5 series de Rust.

Las anotaciones que casi todo el mundo evita hasta que ya no puede. Los lifetimes no son una característica aparte pegada al final: son la notación del borrow checker, y leerlos es sobre todo cuestión de acostumbrarse a la sintaxis.

Luego prestar sin copiar, mutabilidad interior con Cell y RefCell para los casos donde hay que doblar las reglas sin romperlas, y guardar comportamiento en un struct. Once pasos, y es el tour que hace que los mensajes de error empiecen a tener sentido.

Empieza este tour

Anotaciones de lifetime

  • Anotaciones de lifetimeSi una función devuelve una referencia, el compilador debe saber de qué entrada presta.
  • Structs que prestanUn struct que guarda una referencia lleva un lifetime, atado a los datos que lee.
  • Reglas de elisiónLa mayoría de las firmas no necesita anotación: tres reglas infieren el caso obvio.
  • El lifetime 'static'static significa que la referencia vale todo el programa, no que el valor nunca se mueva.

Prestar sin copiar

Mutabilidad interior

Comportamiento guardado

  • Guardar closuresUn closure tiene un tipo innombrable; un struct lo guarda en un Box tras Fn.

Bis

  • tokenizer.rsUn tokenizador de copia cero: cada token es un slice del código fuente original.

Los otros tours de Rust