控制流 / 条件语句

uses System.Generics.Collections;

//guard clause: check the bad state
//first and leave early
function PopOrZero(
  Stack: TStack<Integer>): Integer;
begin
  if Stack.Count = 0 then
    Exit(0);
  Result := Stack.Pop;
end;

var
  Stack: TStack<Integer>;
begin
  Stack := TStack<Integer>.Create;
  Stack.Push(1);

  WriteLn('n1 is 'PopOrZero(Stack));
  //n1 is 1

  WriteLn('n2 is 'PopOrZero(Stack));
  //n2 is 0
end.