2

我有一个用 枚举的全局数组变量'a'..'z'。如果我想在变量声明中初始化一些条目,我通常会执行以下操作:

var 
  Example: Array['a'..'z'] of String = ('Example one', 'two', 'three');

有没有办法在变量声明中初始化'g','p','o'和'y',或者我必须通过实现部分中的一些函数/过程来做到这一点?

甚至可能有更聪明的方法来实现我想要的吗?

4

2 回答 2

6

你不能在那里只初始化某些元素。执行此操作的正确方法是在以下initialization部分中编写implementation


implementation
...
initialization
  Example['g'] := 'something';

end.
于 2013-02-05T09:05:59.517 回答
3

根本没有办法指定您只需要初始化特定的元素。全局数组变量的初始化器只是一个元素列表。元素是按顺序指定的。在您的情况下,任何未指定的元素都设置为默认值''。因为列表是按顺序处理的,所以未指定的元素必须是数组末尾的元素。

为此,您必须在代码中编写这些初始化。

var 
  Example: Array['a'..'z'] of String; // global variable
....
// and later in code
Example['a'] := ...;
Example['b'] := ...;
... etc.

当然,您可以在代码中选择您喜欢的任何元素。

如果您希望在程序启动时执行初始化,那么您必须从初始化部分调用初始化代码。

于 2013-02-05T09:03:19.233 回答