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