Junior — Middle
Môžete vysvetliť koncept slabých odkazov v programovaní?
sobes.tech AI
Odpoveď od AI
Slabé odkazy (weak references) sú odkazy na objekty, ktoré nebránia zberaču odpadkov odstrániť tieto objekty z pamäte. Na rozdiel od silných odkazov, slabé odkazy pomáhajú predchádzať únikom pamäti, keď objekt už nie je potrebný, ale stále na neho existujú odkazy.
Napríklad v iOS (Swift alebo Objective-C) sa slabé odkazy často používajú na prevenciu cyklov držania (retain cycles) medzi objektmi, najmä v uzávierkach alebo delegátoch:
class ViewController: UIViewController {
var closure: (() -> Void)?
func setup() {
closure = { [weak self] in
self?.doSomething()
}
}
func doSomething() {
print("Akcia vykonaná")
}
}
Tu [weak self] zabezpečuje, že uzávierka nebude silno držať self, čo umožní uvoľnenie kontrolóra z pamäti, keď už nie je potrebný.
Takto slabé odkazy pomáhajú spravovať životný cyklus objektov a predchádzať problémom s pamäťou.