Sobes.tech
Junior — Middle

Como distinguir os tipos de dados por valor e por referência e em que se diferenciam na programação?

sobes.tech IA

Resposta da IA

Os tipos de dados por valor e por referência diferem na forma como são armazenados e transmitidos num programa.

  • Tipos por valor (value types) são copiados ao atribuir ou passar. Cada variável contém a sua própria cópia independente dos dados.
  • Tipos por referência (reference types) copiam a referência ao mesmo objeto na memória ao atribuir ou passar. As alterações através de uma referência são visíveis através de outras.

Por exemplo, em Swift:

var a = 5
var b = a // copia o valor 5
b = 10
print(a) // 5, pois a e b são independentes

class Person {
    var name: String
    init(name: String) { self.name = name }
}

var p1 = Person(name: "Иван")
var p2 = p1 // copia a referência
p2.name = "Пётр"
print(p1.name) // "Пётр", pois p1 e p2 referenciam o mesmo objeto

Assim, compreender a diferença é importante para a gestão de memória e a previsibilidade do comportamento do programa.