~~~关于泛类型TList<>赋值的疑惑,求教~~~

伤影 2018-05-17 09:42:48
以下是一个简单的示例;

type
TR = record
Num: Integer;
end;
TL2 = TList<TR>;

TL1 = TList<TL2>;


procedure Init();
var
L1 : TL1;
L2 : TL2;
R : TR;
i : Integer;
begin
L1 := TL1.Create;
for i := 0 to 10 do
begin
R.Num := i;
L2 := TL2.Create;
L2.Add(R);
L1.Add(L2);
end;
end;

L2这个变量,不能在L1.Add后释放,这样L2反复的Create让我很不安,求教这样写是否正确?
...全文
1825 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
看那山瞧那水 2018-05-18
  • 打赏
  • 举报
回复
sorry,错了,LIST没有自动管理,TobjectList才自动管理。 这个和LIST添加指针类似,L1释放时,先循环释放L2
伤影 2018-05-18
  • 打赏
  • 举报
回复
多谢楼上的回答,确实,最后循环释放L2,再释放L1即可,非常感谢
看那山瞧那水 2018-05-18
  • 打赏
  • 举报
回复
L2当然不能释放了,L1.Add(L2)后,L1来管理L2了,L1释放时,自动释放所有L2(默认)
cqs6616 2018-05-18
  • 打赏
  • 举报
回复
链表套链表 这个数据类型比较少见, 并且L2链表只有一个数据,
伤影 2018-05-17
  • 打赏
  • 举报
回复
一分都没有了,只能发这了,抱歉!
通过本课程学习您可以学习到Dart语言如下知识:第1章 Dart语言概述:Dart语言简介、Dart语言支持平台开发、Flutter为什么选择Dart语言。第2章 开发环境搭建:下载Dart SDK、Windows下安装Dart SDK、macOS下安装Dart SDK、Visual Studio Code开发工具、IntelliJ IDEA开发工具。第3章 完成个Dart程序:动动手写一个HelloWorld、Dart源代码文件组织结构、Visual Studio Code调试Dart代码、IntelliJ IDEA调试Dart代码。第4章 Dart语法基础:标识符、关键字、变量、常量、注释、库。第5章 Dart数据类型:数值类型、字符串、数据类型相互转换、布尔类型和枚举类型第6章 运算符:算术运算符、算术赋值运算符、关系运算符、逻辑运算符、位运算符、条件运算符、类型检查运算符。第7章 控制语句:分支语句、循环语句、跳转语句。第8章 函数:函数声明、可选参数、头等函数(first-class function)、匿名函数。第9章 类:类声明、getter和setter访问器、构造函数、静态变量和静态方法、级联符号。第10章 继承与多态:Dart中的继承实现、调用父类构造函数、成员变量的覆盖(Override)、方法的覆盖(Override)、多态、混入(Mixins)。第11章 抽象类与接口:抽象类、接口、Dart中隐式接口、实现接口。第12章 数据容器:List容器、Set容器、Map容器、型。第13章 异常处理:捕获异常、try-on捕获异常、try-catch捕获异常、try-on-catch捕获异常、使用finally代码块、手动抛出异常、自定义异常类。第14章 异步编程:Dart异步处理机制、案例:同步函数实现读取文件、案例:异步函数实现读取文件、Future对象。  

829

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧