Sobes.tech
Junior — Middle

Como é que o valor do tipo value é preservado ao ser capturado numa closure?

sobes.tech IA

Resposta da IA

No Swift, ao capturar um valor de tipo valor (por exemplo, uma struct ou tipos primitivos) numa closure, é criada uma cópia desse valor. Isto significa que a closure armazena a sua própria cópia da variável, e alterações na variável externa após a criação da closure não afetarão o valor dentro da closure.

Exemplo:

var x = 10
let closure = { print(x) }
x = 20
closure() // Vai imprimir 10, porque captura o valor, não a referência

Assim, o valor de tipo valor é guardado na closure como uma cópia no momento da sua criação.