Hlavní navigace

Názor k článku Go: minimalistický a překvapivě výkonný programovací jazyk od MarSik - Defer není úplně to samé jako jednoduché finally,...

  • Článek je starý, nové názory již nelze přidávat.
  • 23. 11. 2018 15:24

    MarSik (neregistrovaný)

    Defer není úplně to samé jako jednoduché finally, i když je mu hodně blízko.

    Defer funkce se totiž dá zaregistrovat až ve chvíli, kdy je co uklízet. Čímž řeší problém alokace více zdrojů s kontrolou selhání a úklidem v každém kroku. Finally si naopak musí samo zjistit co uklidit a co se už nezvládlo vytvořit.

    Myslím si, že právě proto jsou with a try-with-resources tomu defer sémanticky nejblíž. Všechno je to syntaktický cukr, který programátorovi umožňuje po sobě uklidit a přitom neřešit jak a kdy blok/funkce skončí.