调用在数组参数中传递一对值的过程或函数

时间:2014-01-30 13:54:38

标签: delphi

我需要在数组参数函数中传递一对值。

可以调用此表单吗?

呼叫

Resul:= Validate( ['Johni', 18], ['Douglas', 22], ['Marangon', 19], [Dani, 29] )

实施

function Validate( /* Here, include pair array parameter */ ): Boolean
begin
  // Implemetation  
end;

解决方案找到。

TData = record
  Name: string;
  Age: Integer; 
  cosntructor Add( const AName: string; const AAge: Integer );
end;

cosntructor TData.Add( const AName: string; const AAge: Integer );
begin
  Name:= AName
  Age:= AAge;
end;

function Validate( const Array of TData ): Booelan;
begin
  // implemtation
end;

Result:= Validate( [ TData.Add( 'Johni', 18 ), TData.Add('Douglas', 22), TData.Add('Marangon', 19) TData.Add(Dani, 29) ] );

谢谢。

1 个答案:

答案 0 :(得分:2)

不,不可能使用数组表示法来构建记录。数组表示法仅构造数组和集合。相反,您可以从PointRect函数中获取灵感,并创建一个构建TData实例的独立函数:

function Data(const Name: string; Age: Integer): TData;
begin
  Result.Name := Name;
  Result.Age := Age;
end;

它会比调用TData类型的方法提供更简洁的表示法:

Validate([Data('Johni', 18), Data('Douglas', 22), Data('Marangon', 19),
          Data(Dani, 29)]);