Junior
O que são tipos de referência?
sobes.tech IA
Resposta da IA
Os tipos de referência (Reference Types) são tipos de dados que, ao serem atribuídos ou passados para uma função, transmitem uma referência à instância do objeto na memória, e não uma cópia do mesmo.
Características principais:
- Várias variáveis podem referir-se à mesma instância de um objeto.
- A alteração do estado do objeto através de uma referência reflete-se em todas as outras referências a esse mesmo objeto.
- O trabalho com tipos de referência é feito através de ponteiros para objetos no heap.
Exemplos de tipos de referência em Swift:
- Classes (
class) - Funções (
func) - Closures (
{...})
Comparação com tipos de valor (Value Types):
| Característica | Tipo de referência (Reference Type) | Tipo de valor (Value Type) |
|---|---|---|
| O que é transmitido | Referência (endereço na memória) | Cópia do valor |
| Local de armazenamento | Heap | Stack |
| Cópia | A referência é copiada | O valor é copiado |
| Modificação | Afeta o objeto original | Afeta a cópia |
class MyClass {
var value: Int
init(value: Int) {
self.value = value
}
}
var object1 = MyClass(value: 10) // Cria uma instância de classe
var object2 = object1 // object2 agora referencia a mesma instância que object1
print(object1.value) // Saída: 10
print(object2.value) // Saída: 10
object2.value = 20 // Modifica o valor através de object2
print(object1.value) // Saída: 20 (a modificação através de object2 afetou object1)
print(object2.value) // Saída: 20
A gestão de memória para tipos de referência em Swift é feita através do Contador de Referência Automático (ARC).