我需要在数组参数函数中传递一对值。
可以调用此表单吗?
呼叫
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) ] );
谢谢。
答案 0 :(得分:2)
不,不可能使用数组表示法来构建记录。数组表示法仅构造数组和集合。相反,您可以从Point
或Rect
函数中获取灵感,并创建一个构建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)]);