定义常量数组定义

Define const array definition

我正在使用 XE6 版本的 embarcadero 并试过这个:

 const
Elements = 2;
SUPPORTED_EXTENSIONS : array[1..Elements] of String = ('.jp2', '.j2k');

错误:应为“;”找到'='

还有这个:

Const
SUPPORTED_EXTENSIONS : TArray<String> = ['.jp2', '.j2k'];

错误:类型 'TArray' 尚未完全定义

如何定义这个数组?

const
  Elements = 2;
  SUPPORTED_EXTENSIONS : array[1..Elements] of String = ('.jp2', '.j2k');

这段代码是正确的,可以编译。您报告的编译错误是针对另一段代码的,问题中没有。

Const
  SUPPORTED_EXTENSIONS : TArray<String> = ['.jp2', '.j2k'];

XE7 中引入了常量动态数组。它们在 XE6 中不可用。所以这段代码无法编译。您为第二个代码摘录报告的错误消息也与问题中的代码不匹配。此代码导致此错误:

E2001 Ordinal type required

所以,我对你的主要建议是在工作中多加注意。发布与您提供的代码不匹配的错误消息表明存在一定程度的混乱。走得慢一点。检查再检查。

顺便说一句,我建议您更喜欢从零开始的数组索引。所以我会这样写:

const
  ElementCount = 2;
  SUPPORTED_EXTENSIONS: array [0 .. ElementCount-1] of String = ('.jp2', '.j2k');