深入探索泛型:从接口到智能指针及协变返回类型
1. 字典与字符串列表搜索性能对比
在代码中,对字符串列表( sList )和字典( sDict )进行元素值求和操作。为了比较在排序字符串列表(采用二分查找)和字典(使用哈希键)中搜索元素的时间差异,进行了测试。测试结果表明,虽然最终求和结果相同,但字典的搜索速度明显更快。对于百万条记录,字典的搜索时间约为字符串列表的四分之一,具体测试数据如下:
| 类型 | 总数值 | 搜索时间(毫秒) |
| ---- | ---- | ---- |
| 字符串列表 | 99493811 | 2839 |
| 字典 | 99493811 | 686 |
2. 泛型接口
在“Sorting a TList ”部分,我们注意到预定义接口的泛型声明用法。实际上,定义泛型接口是完全合法的,例如在 GenericInterface 应用项目中定义的 IGetValue<T> 接口:
type
IGetValue<T> = interface
function GetValue: T;
procedure SetValue (Value: T);
end;
与标准接口不同,泛型接口无需指定全局唯一标识符(GUID)作为接口 ID(IID),编译器会为每个泛型接口实例自动生成 IID。我们可以定义一个实现该泛型接口的泛型类
超级会员免费看
订阅专栏 解锁全文
1078

被折叠的 条评论
为什么被折叠?



