Junior
O que exatamente armazena a variável quando criamos um objeto do tipo value?
sobes.tech IA
Resposta da IA
Quando criamos um objeto do tipo valor (estrutura, enumeração, tupla em Swift), a variável armazena uma cópia dos dados desse objeto diretamente na memória. A atribuição ou passagem desse objeto por parâmetro leva a uma cópia do seu conteúdo.
Exemplos:
struct Point {
var x: Int
var y: Int
}
var p1 = Point(x: 1, y: 2) // A variável p1 armazena uma cópia dos dados (x=1, y=2)
var p2 = p1 // p2 recebe uma cópia dos dados de p1. São cópias independentes.
p1.x = 10 // Apenas p1.x é alterado
print(p2.x) // Vai mostrar 1, pois p2 não mudou
Comparação com tipo de referência (classe):
| Característica | Tipo de Valor (estrutura, enumeração) | Tipo de Referência (classe) |
|---|---|---|
| O que é armazenado na variável | Cópia dos dados do objeto | Referência ao objeto na memória |
| Atribuição / Passagem | Cópia dos dados | Cópia da referência (aponta para o mesmo objeto) |
| Alteração | Afeta apenas a cópia atual | Afeta o objeto ao qual a referência aponta (pode afetar outras variáveis que referenciam o mesmo objeto) |