Junior — Middle
Hogyan tárolódik az érték típusú value értéke, amikor bezárásban (closure) van?
sobes.tech MI
Válasz az MI-től
Swiftben, amikor egy értéktípusú értéket (például struct vagy primitív típusokat) fogunk elkapni egy closure-ben, akkor ennek az értéknek a másolatát hozzuk létre. Ez azt jelenti, hogy a closure saját másolatot tárol a változóról, és a külső változó módosításai a closure létrehozása után nem befolyásolják a closure belsejében lévő értéket.
Példa:
var x = 10
let closure = { print(x) }
x = 20
closure() // Kiírja az 10-et, mert az érték van elkapva, nem a referencia
Így az értéktípusú érték a closure-ben másolatként kerül tárolásra a létrehozás pillanatában.