40 lines
712 B
ObjectPascal
40 lines
712 B
ObjectPascal
program variadicRoutinesDemo(input, output, stdErr);
|
|
{$mode objFPC}
|
|
|
|
// array of const is only supported in $mode objFPC or $mode Delphi
|
|
procedure writeLines(const arguments: array of const);
|
|
var
|
|
argument: TVarRec;
|
|
begin
|
|
// inside the body `array of const` is equivalent to `array of TVarRec`
|
|
for argument in arguments do
|
|
begin
|
|
with argument do
|
|
begin
|
|
case vType of
|
|
vtInteger:
|
|
begin
|
|
writeLn(vInteger);
|
|
end;
|
|
vtBoolean:
|
|
begin
|
|
writeLn(vBoolean);
|
|
end;
|
|
vtChar:
|
|
begin
|
|
writeLn(vChar);
|
|
end;
|
|
vtAnsiString:
|
|
begin
|
|
writeLn(ansiString(vAnsiString));
|
|
end;
|
|
// and so on
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
begin
|
|
writeLines([42, 'is', true, #33]);
|
|
end.
|