gpt4 book ai didi

delphi - 方法重载和默认参数,Delphi 中还有其他选项吗?

转载 作者:行者123 更新时间:2023-12-03 15:46:37 24 4
gpt4 key购买 nike

我在程序中得到了一组数字,例如 A、B、C、D,有时我需要计算这些数字的总和,例如:

    function DoIt2 (a, b : Integer) : Integer ; overload
begin
result := a +b ;
end;


function DoIt3 (a, b, c : Integer) : Integer ; overload
begin
result := a +b +c ;
end;

我的问题涉及到很多DoIt的函数。我不能使用例如一个 IntegerList 因为我需要知道 A 和 B 是什么等等......与无限的函数重载相比,有什么好的解决方案吗?

最佳答案

您应该使用 open array :

function Sum(const Values: array of Integer): Integer;
var
i: Integer;
begin
Result := 0;
for i := low(Values) to high(Values) do
Result := Result + Values[i];
end;
end;

并像这样调用它,使用 open array constructor :

x := Sum([1, 2]);
y := Sum([1, 2, 3]);
z := Sum([42, 666, 29, 1, 2, 3]);
i := Sum([x, y, z]);

等等。

事实上,您会发现这个函数(整数版本的名称 SumInt)以及许多类似的函数已在 Math 单元中实现。

关于delphi - 方法重载和默认参数,Delphi 中还有其他选项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17898733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com