释放动态变体数组的最佳/首选方法是什么?

Jer*_*non 1 delphi variant dynamic-arrays

例如,如果我有以下内容:

type
  TVArray = array of array of Variant;
var
  MyArray : TVArray;
Run Code Online (Sandbox Code Playgroud)

然后我将一堆元素添加到MyArray中,使其具有1000个数组,每个数组包含30个变体.

如果我想立即执行此操作,释放该内存的最佳或首选方法是什么?

MyArray := nil;
Run Code Online (Sandbox Code Playgroud)

要么

SetLength(MyArray, 0);
Run Code Online (Sandbox Code Playgroud)

要么

Finalize(MyArray);
Run Code Online (Sandbox Code Playgroud)

或者我是否需要先对子阵列做些什么?各个变体包含哪些内容?

Rob*_*edy 8

这三个都是等价的.你选择哪个是风格问题.我更喜欢第一个(分配nil),因为它非常简洁.

编译器知道如何释放Variant值.在释放数组之前,你不需要做任何额外的事情 - 如果你根本不打算释放数组,那么编译器最终会为你最终销毁它.