AD

¿Ya dominas lo básico? Un curso estructurado de Julia es la vía rápida para dar el salto.

Ver cursos de Julia en Udemy

Enlace de afiliado. No te cuesta nada extra.

🟣Lecciones de Julia
Lección 40 / 68

Copia superficial y copia profunda

En esta lección verás por qué asignar un objeto no siempre lo copia.

Al asignar un objeto mutable a otra variable, ambas apuntan al mismo objeto: modificar uno cambia el otro.

El código de ejemplo lo demuestra con una dirección compartida.

Fíjate en mutable struct: si el struct fuera inmutable —lo normal en Julia— este problema no existiría, porque no habría forma de modificar el campo. Esa es una razón de peso para preferir los inmutables, además del rendimiento.

Cuando de verdad necesitas algo mutable, Julia ofrece copy para una copia superficial y deepcopy para una que recorra toda la estructura. deepcopy es cómodo y caro, así que conviene saber lo que se está copiando.

Los arrays también son mutables y se comparten al asignar. Un idiom que confunde al principio: b = a comparte, mientras que b .= a —con punto— copia los valores dentro del array que ya existe. La diferencia es un carácter y el comportamiento es opuesto.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Julia directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)