Rc
Rc
es un puntero compartido de referencia contada. Utilízalo cuando necesites hacer referencia a los mismos datos desde varios lugares:
- Consulta
Arc
yMutex
si te encuentras en un contexto multihilo. - Puedes degradar un puntero compartido en un puntero
Weak
para crear ciclos que se abandonarán.
Speaker Notes
This slide should take about 5 minutes.
- El recuento de
Rc
asegura que el valor que contiene sea válido mientras haya referencias. Rc
en Rust es comostd::shared_ptr
en C++.Rc::clone
es simple: crea un puntero en la misma asignación y aumenta el recuento de referencias. No hace clones completos y, por lo general, se puede ignorar cuando se buscan problemas de rendimiento en el código.make_mut
clona el valor interno si es necesario (“copiar al escribir”) y devuelve una referencia mutable.- Comprueba el recuento de referencias con
Rc::strong_count
. Rc::downgrade
ofrece un objeto de referencia contada debil para crear ciclos que que se borraran propiamente (probablemente en combinación conRefCell
).