Sobes.tech
Junior — Middle

Kako se čuva vrednost tipa value kada se uhvati u closure?

sobes.tech АИ

Одговор од АИ

U Swift-u, kada uhvatimo vrednost tipa value (npr. strukturu ili primitivne tipove) u zatvaranju (closure), kreira se kopija te vrednosti. To znači da zatvaranje čuva sopstvenu kopiju promenljive, i promene spoljašnje promenljive nakon kreiranja zatvaranja neće uticati na vrednost unutar zatvaranja.

Primer:

var x = 10
let closure = { print(x) }
x = 20
closure() // Ispisaće 10, jer je uhvaćena vrednost, a ne referenca

Na ovaj način, vrednost tipa value se čuva u zatvaranju kao kopija u trenutku kreiranja.