类 / 方法

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(
    [235]);
  FirstLast := Assistant.GetFirstLast;
  //result.First is 2
  //result.Last is 5

  WriteLn('first = ', FirstLast.First);
  WriteLn('last = ', FirstLast.Last);
end.