我总是将动态数组的初始化与终结器配对,形式为
finally
SetLength(Array, 0);
end;
确切地知道数组何时“被破坏”并允许我在需要时通过已经有一个“finally”可用来更平滑地从数组过渡到 TList 感觉更自然。
然而,这种方法使源代码更加缩进。这种方法有什么缺点吗——可读性、可维护性、可扩展性、性能、错误倾向?
我写的示例代码:
var
A1: array of Integer;
A2: array on Boolean;
A3: array of string;
begin
SetLength(A1, 10);
try
...
SetLength(A2, 20);
try
...
SetLength(A3, 30);
try
...
finally
SetLength(A3, 0);
end;
finally
SetLength(A2, 0);
end;
finnally
SetLength(A1, 0);
end;
end;