Am 11.12.2019 um 23:40 schrieb Ryan Joseph via fpc-devel:

On Dec 11, 2019, at 4:16 PM, Michael Van Canneyt <[email protected]> wrote:

It does gain something: it tells you it is NOT a varargs, but an array of
const, which is a different beast altogether.
But it's a syntax equivalent for "a variable amount of arguments", i.e. 
varargs. ;) I guess others don't see it this way however.
Do you consider this as a variable "amount of arguments" as well?

=== code begin ===

function CalcSum(aArg: array of Integer): Integer;
var
  i: Integer;
begin
  Result := 0;
  for i in aArg do
   Result := Result + i;
end;

var
  a: array of Integer;
begin
  Writeln(CalcSum([21, 54, 67, 89]));
  a := [94, 28, 85, 32];
  Writeln(CalcSum(a));
end.

=== code end ===

This uses the same mechanism, namely "open array" as "array of const" is in reality an "array of TVarRec" where the compiler automatically converts the incoming variables into a TVarRec.

In the Pascal world this is considered *one* argument. In contrast Writeln() supports a variable amount of arguments.

Regards,
Sven
_______________________________________________
fpc-devel maillist  -  [email protected]
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to