函数作为Pascal中的返回值

时间:2014-03-26 08:40:06

标签: function return-value pascal freepascal

我想在Pascal中返回一个函数作为返回值。

通常看起来应该是这样的:

function a(function b: Integer): function : Integer;
begin
   a := b;
end;

但这不起作用。我知道返回函数有一些问题 来自另一个函数的返回值,但据我所知,此代码应以某种方式工作

我错过了什么?

1 个答案:

答案 0 :(得分:3)

您需要定义一个函数类型来执行您想要的操作。请参阅以下代码示例:

type
  TFunc = function: Integer;

function a(b: TFunc): TFunc;
begin
  a := b;
end;

function x: Integer;
begin
  x := 11;
end;

begin
  Writeln(a(@x));
end.