FillArray(MyArray);
FillArray(MyArray, 0);
A multiple-parameter declaration cannot specify a default value. Thus, while
function MyFunction(X: Real = 3.5; Y: Real = 3.5): Real;
is legal,
function MyFunction(X, Y: Real = 3.5): Real; // syntax error
is not.
Parameters with default values must occur at the end of the parameter list. That is, all parameters following the first
declared default value must also have default values. So the following declaration is illegal.
procedure MyProcedure(I: Integer = 1; S: string); // syntax error
Default values specified in a procedural type override those specified in an actual routine. Thus, given the
declarations
type TResizer = function(X: Real; Y: Real = 1.0): Real;
function Resizer(X: Real; Y: Real = 2.0): Real;
var
F: TResizer;
N: Real;
the statements
F := Resizer;
F(N);
result in the values
(N, 1.0)
being passed to
Resizer
.
Default parameters are limited to values that can be specified by a constant expression. Hence parameters of a
dynamic-array, procedural, class, class-reference, or interface type can have no value other than nil as their default.
Parameters of a record, variant, file, static-array, or object type cannot have default values at all.
Dostları ilə paylaş: