Rust · Intermediário · Inglês · Técnico
Rc
Ponteiro com contagem de referências para dados compartilhados em uma única thread. Cada clone aumenta o contador, e o valor é liberado quando chega a zero.
Onde usar
Aparece em grafos e árvores com nós compartilhados, quase sempre junto de RefCell. Ao tentar enviá-lo para outra thread, o compilador recusa.
Em código
use std::rc::Rc;
let a = Rc::new(String::from("x"));
let b = Rc::clone(&a);
println!("{}", Rc::strong_count(&a));Exemplos
Use Rc to share the node between parents.
Use Rc para compartilhar o nó entre os pais.
Rc isn't Send, so it can't cross threads.
Rc não é Send, então não cruza threads.
Cuidado
Rc não é thread-safe; para várias threads use Arc. Ciclos de Rc vazam memória.
Sinônimos
ponteiro contado
Antônimos
Arc
Origem
Sigla de reference counted, 'com contagem de referências'.