ExpertiDict

Rust · Essencial · Inglês · Técnico

Copy

/ˈkɑːpi/substantivo

Trait marcador para tipos simples cuja cópia bit a bit é barata, como inteiros. Ao atribuir um valor Copy, o original continua válido, sem move.

Onde usar

Você deriva Copy em structs pequenas para evitar erros de valor movido. Tipos com Drop ou com dados no heap, como String, não podem ser Copy.

Em código

#[derive(Clone, Copy)]
struct Ponto { x: i32, y: i32 }
let p = Ponto { x: 1, y: 2 };
let q = p; // p continua válido
println!("{} {}", p.x, q.y);

Exemplos

Derive Copy so we can pass it by value.

Derive Copy para podermos passar por valor.

String can't be Copy because it owns heap data.

String não pode ser Copy porque é dona de dados no heap.

Cuidado

Copy não é o mesmo que Clone: todo tipo Copy também é Clone, mas só Copy faz a cópia acontecer de forma automática.

Antônimos

move

Veja também

Todos os termos de Rust