我在Delphi中创建一个需要特定值作为参数的函数,除非在调用函数时设置它。虽然在这种情况下会覆盖默认参数吗?
示例:
function ExampleFunction(b = 3, a){
b*a = c
}
ExampleFunction(15,2)
默认参数(3)是否会被给定参数(15)替换?
答案 0 :(得分:6)
您的代码无法编译。它的语法无效。看起来好像你已经用Pascal和C#的混合编写了代码。我建议你解决这个问题。
除此之外,默认参数必须出现在列表的最后。原因是默认参数允许您在调用函数时省略参数。执行此操作时,编译器将缺少的参数替换为默认值。因为参数是位置参数,所以不能省略参数,但是然后传递列表中显示的其他参数。
documentation,我恳请你再读一遍,说:
具有默认值的参数必须出现在参数列表的末尾。也就是说,第一个声明的默认值之后的所有参数也必须具有默认值。
现在回答这个问题。如果不省略参数,即如果提供参数,则使用您提供的值。
让我们使用一个实际编译的例子:
function Test(a: Integer; b: Integer = 42): Integer;
begin
Result := a * b;
end;
然后
Test(2) = 84 // parameter b is omitted, default value passed
和
Test(4, 3) = 12