我有一个用 枚举的全局数组变量'a'..'z'
。如果我想在变量声明中初始化一些条目,我通常会执行以下操作:
var
Example: Array['a'..'z'] of String = ('Example one', 'two', 'three');
有没有办法在变量声明中初始化'g','p','o'和'y',或者我必须通过实现部分中的一些函数/过程来做到这一点?
甚至可能有更聪明的方法来实现我想要的吗?
我有一个用 枚举的全局数组变量'a'..'z'
。如果我想在变量声明中初始化一些条目,我通常会执行以下操作:
var
Example: Array['a'..'z'] of String = ('Example one', 'two', 'three');
有没有办法在变量声明中初始化'g','p','o'和'y',或者我必须通过实现部分中的一些函数/过程来做到这一点?
甚至可能有更聪明的方法来实现我想要的吗?
你不能在那里只初始化某些元素。执行此操作的正确方法是在以下initialization
部分中编写implementation
:
implementation
...
initialization
Example['g'] := 'something';
end.
根本没有办法指定您只需要初始化特定的元素。全局数组变量的初始化器只是一个元素列表。元素是按顺序指定的。在您的情况下,任何未指定的元素都设置为默认值''
。因为列表是按顺序处理的,所以未指定的元素必须是数组末尾的元素。
为此,您必须在代码中编写这些初始化。
var
Example: Array['a'..'z'] of String; // global variable
....
// and later in code
Example['a'] := ...;
Example['b'] := ...;
... etc.
当然,您可以在代码中选择您喜欢的任何元素。
如果您希望在程序启动时执行初始化,那么您必须从初始化部分调用初始化代码。