AD

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

Ver cursos de Kotlin en Udemy

Enlace de afiliado. No te cuesta nada extra.

🎯Lecciones de Kotlin
Lección 40 / 68

Copia superficial y copia profunda

En esta lección verás la diferencia entre copiar una referencia y copiar el contenido.

Al asignar un objeto a otra variable, ambas apuntan al mismo objeto: modificar uno cambia el otro. Para tener una copia independiente hay que crear una instancia nueva.

El código de ejemplo lo demuestra con un objeto compartido y luego con una copia real.

Las data class traen un método copy que crea un objeto nuevo cambiando solo lo que indiques: usuario.copy(nombre = "Ana"). Es cómodo y hay que saber que también es una copia superficial: los objetos anidados se comparten. Para copiar en profundidad hay que aplicar copy también a ellos.

La forma de evitar el problema por completo es no modificar nada: si todas las propiedades son val y las colecciones de solo lectura, la pregunta de cómo copiar deja de existir, porque nadie puede cambiar lo compartido.

Ese es el estilo que domina en Kotlin moderno, y es la base de cómo funciona el estado en Jetpack Compose: en lugar de modificar un objeto, se produce uno nuevo.

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

🧪 Este sitio no puede compilar ni ejecutar Kotlin 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)