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