Anonymní metody v Delphi Tiburón
O budoucí verzi Delphi jsem již psal v souvislosti s unicode a generic, nyní zkusím přiblížit další novinku v jazyce.
type
TSimpleProc = reference to procedure(s:string);
var
x1:TSimpleProc;
begin
x1:= procedure(s:string)
begin
writeln(s);
end;
x1('Test');
x1('Test2');
end.
Důležité je, že v kódu pak lze ten typ TSimpleProc předávat do metod a procedur (stačí v deklaraci příslušné metody uvést parametr typu TSimpleProc - ale pozor na viditelnost).
Z poznámek jsem moc nepochopil, zda se dají deklarovat lokální proměnné, jen bylo uvedeno, že anonymní metody si drží hodnotu (a viditelnost) proměnných z místa, kde byla anonymní metoda definována. Takže i když referenci na anonymní metodu předáte někam do dalších částí kódu, stále máte k dispozici proměnné z místa definice (to mi přijde, že to podle mne vyplynulo z implementace než z návrhu), ale když se nad tím člověk zamyslí tak by se to i použít dalo.
Celkově anonymní metody slouží k uzavření kousku kódu, který se nebude používat nikde jinde a je kompaktní. Osobně asi dám přednost metodě.