tôi có hàm trả về hàm TFunc<Integer>
là reference to function:Integer
. và tôi có một thủ tục nhận hàm TFunc<Integer>
làm đối số, gọi nó và in kết quả của nó."tham chiếu đến hàm" là kết quả của hàm
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
function GetFunction:TFunc<Integer>;
begin
result := function:Integer begin result := 42 end;
end;
procedure FunctionCall(AFunc:TFunc<Integer>);
var i:Integer;
begin
i := AFunc;
WriteLn(Format('Function Result = %d',[i]));
end;
begin
// FunctionCall(GetFunction); // error
FunctionCall(GetFunction()); // works as excpected
end.
cuộc gọi này (FunctionCall(GetFunction);
) dẫn đến lỗi. và cuộc gọi với ()
hoạt động như bị xem thường.
câu hỏi của tôi là:
khi trong delphi để tôi cần giá treo đồ để gọi một hàm và khi không (tôi nghĩ rằng tôi không bao giờ cần đến chúng)
hoặc
tôi không cần họ và nó là một lỗi?
tôi làm việc với delphi xe5 trên windows 7 dcc32.
Tôi có thể xác nhận nó cũng không biên dịch trong XE4. –