Sobes.tech
Junior

O que significa transferência por cópia?

sobes.tech IA

Resposta da IA

Ao passar por cópia (pass by value) para uma função, é passada uma cópia do valor da variável, não uma referência ao original. As alterações feitas no parâmetro dentro da função não afetam a variável original fora dela.

Para estruturas e enumerações em Swift, a passagem por cópia é usada por padrão. Para classes, a passagem por referência (pass by reference) é usada, mas neste caso, uma cópia da própria referência é passada, não do objeto.

Exemplo em Swift:

// Estrutura Customer
struct Customer {
    var name: String
}

// Função que altera o parâmetro do tipo Customer
func changeCustomerName(customer: Customer) {
    var modifiedCustomer = customer // Uma cópia da estrutura é criada
    modifiedCustomer.name = "Jane"
    print("Dentro da função: \(modifiedCustomer.name)") // Saída: Dentro da função: Jane
}

var myCustomer = Customer(name: "John")
print("Antes da função: \(myCustomer.name)") // Saída: Antes da função: John

changeCustomerName(customer: myCustomer)

print("Depois da função: \(myCustomer.name)") // Saída: Depois da função: John - o valor original não mudou

Ponto chave: a função trabalha com uma cópia local dos dados.