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.