0Pricing
Mojo Academy · Lección

Semántica de copia frente a movimiento

Cómo se duplican o reubican los valores.

Semántica de copia frente a movimiento es una lección gratuita de Mojo Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Mojo Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Mojo Academy incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en 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. 🎯

Preguntas frecuentes

¿La lección «Semántica de copia frente a movimiento» es gratis?

Sí — el texto completo de «Semántica de copia frente a movimiento» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Mojo Academy, actualiza a CoddyKit PRO. El curso de Mojo Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Semántica de copia frente a movimiento»?

Cómo se duplican o reubican los valores. Practicas Mojo Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Mojo Academy?

No se requiere experiencia previa. Mojo Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Semántica de copia frente a movimiento»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Mojo Academy?

Sí. Cada lección de Mojo Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Semántica de copia frente a movimiento
  2. El método __copyinit__
  3. El método __moveinit__
  4. Destrucción y __del__
← Volver a Mojo Academy