Sobes.tech
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.