Sobes.tech
Junior — Middle

Nem-escaping jellemzőjű closure-k referencia típusok?

sobes.tech MI

Válasz az MI-től

Swiftben a non-escaping jellemzővel rendelkező closure-ök nem referenciatípusok abban az értelemben, hogy nem fogják el és nem tárolják el a funkcióból való kilépés után. A non-escaping closure-ök a függvény testén belül futnak, és nem tartják meg őket, így nem hoznak létre erős hivatkozásokat, amelyek retain cycle-hez vezethetnek. Ez különbözik az escaping closure-öktől, amelyek tárolhatók és később meghívhatók, és így referenciatípusként viselkednek. Ezért a non-escaping closure-ök nem viselkednek referenciatípusként, hanem inkább ideiglenes kódrészekként, amelyek azonnal végrehajtódnak.