Defer se mi moc libi. Hodne casto by se mi hodil v C ve funkcich co otviraji vic files a pokud nektery nejde otevrit, musi se zavrit vsechny uz otevrene a vyskocit.
neco na zpusob (zjednodusene)
a=fopen("input")
if (!a) return;
b=fopen("output")
if (!b) { close(a); return}
c=fopen("tmp")
if (!c) {close(b); close(a); return}
...
close(c)
close(b)
close(a)
return
s deferem by to tudiz slo napsat podstatne jednoduseji
a=fopen("input");
if (!a) return
defer close(a)
b=fopen("output");
if (!b) return
defer close(b)
c=fopen("tmp");
if (c)
{
...
close(c)
}
return
Urcite se najde nekdo, kdo by to dokazal udelat s obskurnima konstrukcema typu try-finally a podobne, ale kdyz se zrovna tohle ve skole probiralo, to uz jsem tam asi 20 let nechodil :-) Spis je vetsi problem v tom, ze musim psat kod prelozitelny 15 let starym kompilatorem :-(