Junior — Middle
Jak se uchovává hodnota typu value při zachycení v closure?
sobes.tech AI
Odpověď od AI
Ve Swiftu, když zachytíme hodnotu typu value (například strukturu nebo primitivní typy) v uzávěru (closure), vytvoří se kopie této hodnoty. To znamená, že uzávěr uchovává vlastní kopii proměnné, a změny vnější proměnné po vytvoření uzávěru neovlivní hodnotu uvnitř uzávěru.
Příklad:
var x = 10
let closure = { print(x) }
x = 20
closure() // Vytiskne 10, protože je zachycena hodnota, nikoliv odkaz
Tímto způsobem je hodnota typu value uložena v uzávěru jako kopie v okamžiku vytvoření.