Sobes.tech
Junior

¿Qué exactamente almacena la variable cuando creamos un objeto de tipo value?

sobes.tech AI

Respuesta de la IA

Cuando creamos un objeto de tipo valor (estructura, enumeración, tupla en Swift), la variable almacena una copia de los datos de ese objeto directamente en la memoria. La asignación o transmisión de dicho objeto por parámetro conduce a una copia de su contenido.

Ejemplos:

struct Point {
    var x: Int
    var y: Int
}

var p1 = Point(x: 1, y: 2) // La variable p1 almacena una copia de los datos (x=1, y=2)
var p2 = p1              // p2 recibe una copia de los datos de p1. Son copias independientes.

p1.x = 10                // Solo se modifica p1.x
print(p2.x)              // Mostrará 1, ya que p2 no cambió

Comparación con tipo de referencia (clase):

Característica Tipo de Valor (estructura, enum) Tipo de Referencia (clase)
Lo que almacena en la variable Copia de los datos del objeto Referencia al objeto en memoria
Asignación / Transmisión Copia de los datos Copia de la referencia (apunta al mismo objeto)
Cambio Solo afecta a la copia actual Afecta al objeto al que apunta la referencia (puede afectar a otras variables que referencian al mismo objeto)