Rust · Intermediário · Português · Técnico
mutabilidade interior
Padrão que permite alterar um valor por uma referência compartilhada, usando tipos como Cell, RefCell e Mutex. As regras de empréstimo passam a ser conferidas por dentro desses tipos.
Onde usar
Entra em cena quando o design exige estado compartilhado, como caches e contadores. Em review, a pergunta é se o estado precisa mesmo ser mutado por trás de &self.
Em código
use std::cell::Cell;
let c = Cell::new(1);
c.set(c.get() + 1); // c não é mut
println!("{}", c.get());Exemplos
Usei mutabilidade interior para o cache, com RefCell.
Cell é mutabilidade interior sem custo de checagem.
Cuidado
Não quebra a segurança de memória: o tipo garante as regras por dentro, com checagem em execução ou com travas.
Sinônimos
interior mutability