在Delphi中,我可以初始化一个常量的非泛型记录数组,如下所示:
type
TMapEntry = record
Key: Integer;
Value: Integer;
end;
const
Arr: array[0..0] of TMapEntry = ((Key: 1; Value: 10));
但是当我尝试以更通用的方式扩展代码时,我无法初始化常量数组:
type
TMapEntry<KeyType, ValueType> = record
Key: KeyType;
Value: ValueType;
end;
const
Arr: array[0..0] of TMapEntry<Integer, Integer> = ((Key: 1; Value: 10)); //<-- Compile error
我什至尝试使用类型别名,但遇到了相同的编译错误:
type
TIntMapEntry = TMapEntry<Integer, Integer>;
const
Arr: array[0..0] of TIntMapEntry = ((Key: 1; Value: 10)); //<-- Compile error
有没有办法初始化通用记录的常量数组?
PS:我正在使用德尔福10.3
有没有办法初始化泛型记录的常量数组?
不。不幸的是,这是编译器的限制。