Sobes.tech
Junior

¿Qué son los tipos de referencia?

sobes.tech AI

Respuesta de la IA

Los tipos de referencia (Reference Types) son tipos de datos que, al asignarlos o pasarlos a una función, transmiten una referencia a la instancia del objeto en la memoria, y no una copia del mismo.

Características clave:

  • Varias variables pueden referirse a la misma instancia de un objeto.
  • La modificación del estado del objeto a través de una referencia se refleja en todas las demás referencias a ese mismo objeto.
  • El trabajo con tipos de referencia se realiza mediante punteros a objetos en el montón (heap).

Ejemplos de tipos de referencia en Swift:

  • Clases (class)
  • Funciones (func)
  • Closures ({...})

Comparación con tipos de valor (Value Types):

Característica Tipo de referencia (Reference Type) Tipo de valor (Value Type)
Lo que se transmite Referencia (dirección en memoria) Copia del valor
Lugar de almacenamiento Montón (Heap) Pila (Stack)
Copiado La referencia se copia El valor se copia
Modificación Afecta al objeto original Afecta a la copia
class MyClass {
    var value: Int

    init(value: Int) {
        self.value = value
    }
}

var object1 = MyClass(value: 10) // Creamos una instancia de clase
var object2 = object1          // object2 ahora referencia a la misma instancia que object1

print(object1.value) // Salida: 10
print(object2.value) // Salida: 10

object2.value = 20 // Modificamos el valor a través de object2

print(object1.value) // Salida: 20 (la modificación a través de object2 afectó a object1)
print(object2.value) // Salida: 20

La gestión de memoria para tipos de referencia en Swift se realiza mediante Automatic Reference Counting (ARC).