【问题标题】:Define const array definition定义 const 数组定义
【发布时间】:2015-04-02 15:04:44
【问题描述】:

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

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

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

还有这个:

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

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

如何定义这个数组?

【问题讨论】:

    标签: delphi delphi-xe6


    【解决方案1】:
    const
      Elements = 2;
      SUPPORTED_EXTENSIONS : array[1..Elements] of String = ('.jp2', '.j2k');
    

    这段代码是正确的并且可以编译。您报告的编译错误是针对另一段代码,该代码不存在于问题中。

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

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

    需要 E2001 序数类型

    因此,我对您的主要建议是在工作中更加小心。发布与您提供的代码不匹配的错误消息表明存在一定程度的混淆。走得更慢。检查并仔细检查。

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

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

    【讨论】:

    • 我想,我犯了一个愚蠢的错误,但我找不到。现在这个错误是:当我删除这部分(=('.jp2','.j2k'))时,formMain.SUPPORTED_EXTENSIONS 没有相应的组件。可能会帮助您找到解决方案吗?我是 delphi 新手,抱歉,如果这是个愚蠢的问题
    • 我认为我的回答已经涵盖了您问题中的所有内容。现在你在问一些其他的代码,我也看不到的代码。鉴于您报告的错误与问题中的代码都不匹配,我不愿意尝试解决此评论。我没有真正的信心,我明白它的要求。也许你可以更精确。
    • 好的,我发现了我的错误,谢谢我的朋友;)“检查并仔细检查。”重要:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 2021-01-21
    • 1970-01-01
    • 2021-06-20
    • 2011-03-02
    • 1970-01-01
    相关资源
    最近更新 更多