是否有可能在BOTH Delphi和FreePascal中声明一个数组的const而不使元素成为常量?

Gus*_*eno 2 arrays delphi freepascal constants

很久以前我记得我可以在Turbo Pascal 7中做到这一点.

也许我错了,这是我需要澄清的事情,但是可以将一个字符串数组声明为常量吗?

如果不是什么选项/解决方法.

我现在拥有的是:

type
  TStates = (sOne, sTwo, sThree);
var
  TArrayOfString: array [sOne..sThree] of string = 
     ('State one', 'State two', 'State three');
Run Code Online (Sandbox Code Playgroud)

但是想要用const替换那个var.

谢谢

编辑1:添加了一些代码来澄清我的问题.

Jim*_*eth 12

const替换var是完全合法的:

const
  TArrayOfString: array [1..3] of string =
     ('String one', 'String two', 'String three');
Run Code Online (Sandbox Code Playgroud)

我很好奇为什么你的标识符名称以T开头.你试图定义这样的类型:

type
  TArrayOfString = array [1..3] of string;
const
  MyArrayOfString: TArrayOfString =
     ('String one', 'String two', 'String three');
Run Code Online (Sandbox Code Playgroud)

您不能将可变长度数组(AFAIK)作为const,也不能使用未定义类型.

这是Delphi 2009.YMMV与FreePascal.