今天做的一个项目中要使用一大串数据进行处理。如何对这一系列的数据进行保存成为一个首要的问题。唉,Delphi啊,你何时才能支持泛型啊。在C#,C++这都不是问题了啊。在Delphi里只有TStringList这个容器可以使用,但是它是处理字符串的。一进一出,需要大量的typecast时间。用链表??不值得。上网一查,呵呵,可以用动态数组。看来我还是一个新手,这个东西我都不知道啊。啥时候Delphi有了这个玩意了。
var
i:array of integer;
begin
SetLength(i,length);//设置动态数组的长度
以后就可以像正常数组那样操作
有了动态数组就可以随时设置数组的大小,不会像以前那样事先定义数组的大小,对资源造成浪费。
动态数组的本质还是指针,上面的例子。i 就是一个指针类型。可以将两个动态数组之间进行引用赋值,当然了我们也可以将其复制给一个Pointer,只不过意义不大罢了。
var
p:Pointer;
i,j:Array of integer;
begin
end;
使用完了内存当然需要释放了,否则会造成内存泄露。动态数组使用了 reference-counting 技术,所以在使用完后,只需将其赋值为nil即可。
-------------------------------------------------------------------