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) |