ExpertiDict

Rust · Intermediário · Inglês · Técnico

Box

/bɑːks/substantivo

Ponteiro inteligente que guarda um valor no heap e é seu único dono. Quando o Box sai de escopo, o valor é liberado.

Onde usar

Usado para tipos recursivos, valores grandes e trait objects como Box<dyn Trait>. Sem ele, um tipo que contém a si mesmo teria tamanho infinito.

Em código

enum Lista {
  Cons(i32, Box<Lista>),
  Fim,
}
use Lista::{Cons, Fim};
let fim = Box::new(Fim);
let l = Cons(1, fim);

Exemplos

Wrap the recursive field in a Box.

Envolva o campo recursivo em um Box.

We return a Box<dyn Error> here.

Aqui devolvemos um Box<dyn Error>.

Cuidado

Não é um ponteiro compartilhado: Box tem um dono só, e para vários donos se usa Rc ou Arc.

Sinônimos

ponteiro no heap

Origem

Do inglês box, 'caixa'.

Veja também

Todos os termos de Rust