Junior — Middle
Ako sa uchováva hodnota typu value pri zachytení v closure?
sobes.tech AI
Odpoveď od AI
V Swift, keď zachytíme hodnotu typu value (napríklad štruktúru alebo primitívne typy) v uzávierke (closure), vytvorí sa kópia tejto hodnoty. To znamená, že uzávierka uchová vlastnú kópiu premennej, a zmeny vonkajšej premennej po vytvorení uzávierky nebudú mať vplyv na hodnotu vo vnútri uzávierky.
Príklad:
var x = 10
let closure = { print(x) }
x = 20
closure() // Vytlačí 10, pretože je zachytená hodnota, nie odkaz
Týmto spôsobom sa hodnota typu value ukladá v uzávierke ako kópia v momente vytvorenia.