任何静态初始化Ada 2012地图的方法

时间:2017-10-26 19:37:59

标签: dictionary initialization ada

我正在尝试创建一个可以通过构建关卡的过程引用的全局地图。

如果可以在规范(.ads)中静态填充此全局映射,那将是理想的。

这是我试图猜测如何进行静态初始化部分的一些破解代码:

package Positive_to_Positive_Type is new Ada.Containers.Formal_Ordered_Maps
  (Key_Type => Positive,
   Element_Type => Positive);

Positive_to_Positive : Positive_to_Positive_Type.Map :=
  ((1 => 11),
   (2 => 12));

错误如下:

expected private type "Ada.Containers.Formal_Ordered_Maps.Map" from instance at line 1
found a composite type

现在我知道我正在尝试使用类似记录的语法来尝试初始化动态结构,甚至可以使用.ads中的值初始化地图,或者必须始终使用插入等来完成ADB?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以在程序包初始化级别执行此操作。 假设您在包规范“A”中声明了Positive_to_Positive和Positive_to_Positive_Type,那么您的包体可能如下所示:

package body A is
begin
   Positive_to_Positive.Insert (1, 11)
   Positive_to_Positive.Insert (2, 12)
end A;