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