Форум: "Начинающим";
Текущий архив: 2011.05.29;
Скачать: [xml.tar.bz2];
Внизпроцедурные ссылки Найти похожие ветки
← →
Scott Storch (2011-02-18 11:36) [0]можете в двух словах объяснить в чем преимущества процедурных ссылок, если к примеру мне нужно в компаратор передать функцию сортировки:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TMyRec = record
ID: Integer;
Name: string;
end;
TComparison<TMyRec> = reference to procedure(const Left, Right: TMyRec);
var
Form1: TForm1;
implementation
uses Math, Generics.Collections, Generics.Defaults;
{$R *.dfm}
function CmpMyRecs(const Left, Right: TMyRec): Integer;
begin
Result := CompareValue(Left.ID, Right.ID);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
MyRecs: TList<TMyRec>;
begin
MyRecs := TList<TMyRec>.Create;
try
// MyRecs.Add();
MyRecs.Sort(TComparer<TMyRec>.Construct(CmpMyRecs))
finally
MyRecs.Free;
end;
end;
end.
в чем разница, объявлю я процедурную ссылку или нет.
← →
RWolf © (2011-02-18 11:38) [1]преимущества перед чем?
← →
DiamondShark © (2011-02-18 11:41) [2]А зачем её объявлять, если она нигде не используется?
← →
Scott Storch (2011-02-18 11:42) [3]перед обычной функцией
← →
RWolf © (2011-02-18 11:58) [4]ссылка может указывать как на процедуру, так и на метод;
в параметрах функции вместо ссылочного аргумента можно вписывать анонимную процедуру.
← →
RWolf © (2011-02-18 12:11) [5]и да — closures.
← →
han_malign (2011-02-18 13:15) [6]в C++ - подобные лямбда-примочки - на шаблонах - честно бета-редуцируются до линейного кода...
в Delphi - generics - это синтаксический сахар в ущерб производительности... или прослойка в .NET...
← →
KSergey © (2011-02-18 16:04) [7]> han_malign (18.02.11 13:15) [6]
> в C++ - подобные лямбда-примочки - на шаблонах - честно
> бета-редуцируются до линейного кода...
Скажи честно: сам придумал или копи-паст? :)
← →
han_malign (2011-02-18 16:32) [8]
> или копи-паст?
- я еще и про ню-редукцию слышал... ;)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.05.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c