type
//multiple values come back as a record
TFirstLast = record
First, Last: Integer;
end;
TArrayAssistant = class
private
FData: TArray<Integer>;
public
constructor Create(
const AData: TArray<Integer>);
function GetFirstLast: TFirstLast;
end;
constructor TArrayAssistant.Create(
const AData: TArray<Integer>);
begin
FData := AData;
end;
function TArrayAssistant.GetFirstLast:
TFirstLast;
begin
Result.First := -1;
Result.Last := -1;
if Length(FData) > 0 then
begin
Result.First := FData[0];
Result.Last := FData[High(FData)];
end;
end;
var
Assistant: TArrayAssistant;
FirstLast: TFirstLast;
begin
Assistant := TArrayAssistant.Create(
[2, 3, 5]);
FirstLast := Assistant.GetFirstLast;
//result.First is 2
//result.Last is 5
WriteLn('first = ', FirstLast.First);
WriteLn('last = ', FirstLast.Last);
end.