Rc<RefCell<T>> en Rust
Propiedad compartida más mutabilidad interior: varios handles a un mismo valor mutable.
use std::cell::RefCell;
use std::rc::Rc;
fn main() {
let shared = Rc::new(RefCell::new(vec!["basics".to_string()]));
let editor = Rc::clone(&shared);
editor.borrow_mut().push("traits".to_string());
let viewer = Rc::clone(&shared);
println!("{:?}", viewer.borrow());
println!("owners: {}", Rc::strong_count(&shared));
shared.borrow_mut().retain(|t| t != "basics");
println!("{:?}", editor.borrow());
}
Cómo funciona
Rccuenta dueños;RefCellpermite la mutación.- Cada clone ve el mismo valor subyacente.
- Esta combinación es solo para un hilo.
Palabras clave y builtins usados aquí
fnletuse
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 404
- Tokens
- 143
- Ritmo de tres estrellas
- 110 tpm
Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 78 segundos.
Paso 2 de 3 en Mutabilidad interior; paso 8 de 11 en Lifetimes y mutabilidad interior.