【问题标题】:Constant set from constant array in DelphiDelphi中常量数组的常量集
【发布时间】:2017-09-09 11:53:10
【问题描述】:

所以我有一个恒定的字符数组,如下所示:

const spCh:array[#1..#4]of char=('\','%','{','}');

我还需要一个包含数组中所有元素的集合,所以我这样做:

var h:char; spChrz:set of char;
...
  spChrz:=[];
  for h:=#1 to #4 do spChrz:=spChrz+[spCh[h]];

是否有可能以某种方式从 const 数组定义常量集?

【问题讨论】:

    标签: arrays delphi set constants


    【解决方案1】:

    没有。数组始终是类型常量,类型常量不能用于定义其他类型常量,比如你的集合。

    请注意,按照您建议的方式定义的集合没有性能优势。类型常量的访问方式与普通变量相同,因此您最好保留在运行时从数组中初始化集合的代码。

    【讨论】:

    • 谢谢澄清,只是想知道我是否错过了一些设置类型的功能。
    【解决方案2】:

    试试这个:

    const spChz:set of char=['\','%','{','}'];
    

    【讨论】:

    • 这种方法使整个事情变得毫无用处。我有那个 const 数组来将我的解析器的所有特殊字符保存在一个地方。另外,它只是基本的 set const,因此与“常量数组中的常量集”概念无关...
    • @Markus_13 是否有可能以某种方式定义常量集?我按原样回答了这个问题。你没说需要用数组来定义集合
    • 好的,如果主题标题不够,编辑问题以强调主要概念。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 2011-01-31
    相关资源
    最近更新 更多