分享

TArray可以这样初始化

 和谐世界 2020-09-29
TArray<T>可以这样初始化

var
  LArr: TArray<Integer>;
begin
  LArr := TArray<Integer>.Create(1,2,3,4,5,6,7);

end;


还可以这样:

还可以这样:LArr =[1,2,3,4,5,6,7]

var
  LArr: TArray<Integer>;
begin
  LArr := TArray<Integer>.Create(1,2,3,4,5,6,7);
end;

var
  LArr: TArray<Integer>;
begin
  LArr := [1,2,3,4,5,6,7];
end;

是一样的。


但是在for var v in ... do语句中,in后面以方括号开头将被认为是集合类型,所以里边的元素只能是0..255的数值型或枚举型,并且循环时会按元素取值的升序而不是下标顺序。浮点、字符串、对象等类型的元素则根本不允许。
这种情况下就只能写TArray<T>.Create了:
for var v in TArray<Integer>.Create(3000, 1000, 2000) do ...;
for var v in TArray<string>.Create('abc', 'def', 'xyz') do ...;


实际上是一样的:

var k := ['123','2'];
for var I in ['123','2'] do
begin

end;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多