0Pricing
Mojo Academy · Aula

Semântica de cópia versus movimentação

Veja como os valores são duplicados ou deslocados.

Semântica de cópia versus movimentação é uma aula grátis de Mojo Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Mojo Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Mojo Academy inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

Two Ways to Pass Along

When a value moves around your program, Mojo can either copy it or move it. Knowing which happens helps you reason about cost. 🔁

What a Copy Is

A copy makes a brand-new, independent value. Both the original and the copy live on, each owning its own data.

var a = MyType(1)
var b = a   # copy: a still valid

What a Move Is

A move relocates a value instead of duplicating it. The data is handed over, so the source is no longer used afterward.

Why Moves Are Cheaper

A copy may duplicate heap data, but a move just transfers ownership of what is already there. For big values that saves real work.

Assignment Usually Copies

Plain assignment in Mojo defaults to a copy, so each variable owns its own value. This keeps value semantics safe and predictable.

Triggering a Move

You request a move with the transfer operator, the caret sigil. It tells Mojo to hand the value over rather than duplicate it.

var b = a^   # move a into b

The Source Is Spent

After a move, the source variable is consumed. Mojo will not let you read it again, which prevents using stale or invalid data.

Copies Keep Both Alive

By contrast, after a copy both variables are fully usable. Each one is independent, so editing one never touches the other.

The Compiler Decides Smartly

Mojo can also turn a copy into a move automatically when the source is no longer needed, an optimization that quietly saves work.

Cost Awareness Pays Off

Thinking about copy versus move lets you avoid duplicating large buffers by accident. It is the first step toward efficient Mojo code.

You Stay in Control

Mojo gives you safe defaults but lets you opt into a move when you want speed. You choose the behavior that fits each moment.

Quick Check

Lets test copy versus move.

Recap

A copy makes an independent duplicate, while a move transfers ownership cheaply and spends the source. Now you can predict both. 🎯

Perguntas Frequentes

A aula “Semântica de cópia versus movimentação” é grátis?

Sim — o texto completo de “Semântica de cópia versus movimentação” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Mojo Academy, atualize para CoddyKit PRO. O curso de Mojo Academy inclui 4 aulas no total.

O que vou aprender em “Semântica de cópia versus movimentação”?

Veja como os valores são duplicados ou deslocados. Você pratica Mojo Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Mojo Academy?

Nenhuma experiência prévia é necessária. Mojo Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Semântica de cópia versus movimentação”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Mojo Academy?

Sim. Cada aula de Mojo Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Semântica de cópia versus movimentação
  2. O método __copyinit__
  3. O método __moveinit__
  4. Destruição e __del__
← Voltar para Mojo Academy