我尝试使用 Delphi 的匿名方法语法:
type
fun = reference to function(): Integer;
Fpc 显示语法错误:
Error: Identifier not found "reference"
Free Pascal 相当于 Delphi 的匿名方法(如果有的话)是什么?
FreePascal 中未实现匿名方法。此类功能的列表位于此处。
支持匿名方法。有用的参考:
GitLab 问题: https://gitlab.com/freepascal.org/fpc/source/-/issues/24481
论坛公告: https://forum.lazarus.freepascal.org/index.php?topic=59468.0
最后,Sven 在公告中给出的一些例子:
type
TFunc = function: LongInt;
var
p: TProcedure;
f: TFunc;
n: TNotifyEvent;
begin
procedure(const aArg: String)
begin
Writeln(aArg);
end('Hello World');
p := procedure
begin
Writeln('Foobar');
end;
p();
n := procedure(aSender: TObject);
begin
Writeln(HexStr(Pointer(aSender));
end;
n(Nil);
f := function MyRes : LongInt;
begin
MyRes := 42;
end;
Writeln(f());
end.