POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Día 30 de #100DaysOfRust: Conteo de referencias con Rc

Día 30 de #100DaysOfRust: Rc para propiedad compartida y mutabilidad interior en Rust

Publicado el 17/09/2025

Día 30 de #100DaysOfRust: Conteo de referencias con Rc<T>. Hoy exploré Rc, el puntero inteligente con conteo de referencias en Rust. Aquí la propiedad se vuelve interesante porque a veces un valor necesita varios propietarios y Rc ofrece exactamente esa funcionalidad.

Por defecto Rust aplica reglas estrictas de propiedad: un solo dueño por valor. En estructuras reales, como grafos, varios elementos pueden apuntar al mismo nodo y ese nodo no debe liberarse hasta que todas las referencias desaparezcan. Rc<T> lleva la cuenta de referencias a un valor y lo libera de forma segura cuando el conteo llega a 0. Un símil sencillo: Rc es como un televisor en la sala familiar, todos pueden verlo mientras estén en la sala y solo cuando la ultima persona se va se apaga.

Rc funciona solo en programas de un unico hilo. Para escenarios multihilo existe Arc<T> que usa conteo atomico. Cuando necesitamos mutabilidad compartida, combinamos Rc<T> con RefCell<T> usando el patron de mutabilidad interior, tema que veremos en la proxima sesion.

Ejemplo practico con listas enlazadas: si usamos Box para la propiedad encontramos este problema al mover valores. Con Rc solucionamos la comparticion de propiedad. Al clonar con Rc::clone(&a) incrementamos el contador en lugar de copiar profundamente, de modo que a, b y c comparten el mismo dato.

Tambien podemos observar el conteo con Rc::strong_count(&a). Cada Rc::clone aumenta el contador y cuando una referencia sale de alcance el contador baja. Cuando alcanza 0 la memoria se libera automaticamente.

En resumen: Rc<T> habilita propiedad compartida mediante conteo de referencias. Clonar con Rc::clone incrementa el contador y cuando la ultima referencia se descarta el dato se libera. Es ideal en escenarios de un solo hilo donde se necesita propiedad compartida. Para mutacion compartida usar RefCell<T> junto a Rc<T> y para multihilo usar Arc<T>.

En Q2BSTUDIO aplicamos estos principios de arquitectura y optimizacion en el desarrollo de soluciones a medida. Si buscas crear aplicaciones robustas y escalables puedes conocer nuestros servicios de desarrollo en desarrollo de aplicaciones y software a medida. Tambien ofrecemos soluciones de inteligencia artificial para empresas; si te interesa explorar modelos, agentes IA o integraciones con procesos de negocio visita nuestra pagina de inteligencia artificial.

Además en Q2BSTUDIO cubrimos ciberseguridad y pentesting, servicios cloud aws y azure, servicios de inteligencia de negocio como power bi, automatizacion de procesos y otras areas clave para transformar digitalmente tu empresa. Palabras clave que nos definen: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi.

Esto cierra el Dia 30 de #100DaysOfRust. Hoy aprendi como Rc<T> permite propiedad compartida y limpieza segura en Rust. Nos vemos mañana para hablar sobre mutabilidad interior con RefCell.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio