ada语法问题

ada语法问题,ada,Ada,我是ada的新手,我想定义一个向量包并将其传递给一个方法,我应该在哪里定义包,这是我需要的代码 package Document is new Ada.Containers.Vectors(Positive,Unbounded_String); use Document; 我不知道放在哪里,这样它对主程序和另一个函数文件都是可见的。如果您使用GNAT(或FSF GCC文件),您需要一个文件document.ads(与您将要放主程序和另一个文件的工作目录相同) 您的新包文档需要与另外两个包“一起

我是ada的新手,我想定义一个向量包并将其传递给一个方法,我应该在哪里定义包,这是我需要的代码

package Document is new Ada.Containers.Vectors(Positive,Unbounded_String);
use Document;
我不知道放在哪里,这样它对主程序和另一个函数文件都是可见的。

如果您使用GNAT(或FSF GCC文件),您需要一个文件
document.ads
(与您将要放主程序和另一个文件的工作目录相同)

您的新包
文档
需要与另外两个包“
一起使用:
Ada.Containers.Vectors
Ada.Strings.Unbounded

不能放置
使用文档
文档.ads中
;它需要放入使用
文档的包中,通过
使用
ing它。
use
子句控制是否需要编写完全限定的名称,例如,要编写
Document
,您可以这样说

with Ada.Containers.Vectors;
with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
package Document is new Ada.Containers.Vectors (Positive, Unbounded_String);
但写作更为传统

with Ada.Containers.Vectors;
with Ada.Strings.Unbounded;
package Document is new Ada.Containers.Vectors
  (Positive,                                                
   Ada.Strings.Unbounded.Unbounded_String);
您的主程序和其他软件包现在可以说
with Document
(如果需要,请使用Document;
)。

如果使用GNAT(或FSF GCC),则需要一个文件
Document.ads
(与您将要放置主程序和其他文件的工作目录相同)

您的新包
文档
需要与另外两个包“
一起使用:
Ada.Containers.Vectors
Ada.Strings.Unbounded

不能放置
使用文档
文档.ads中
;它需要放入使用
文档的包中,通过
使用
ing它。
use
子句控制是否需要编写完全限定的名称,例如,要编写
Document
,您可以这样说

with Ada.Containers.Vectors;
with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
package Document is new Ada.Containers.Vectors (Positive, Unbounded_String);
但写作更为传统

with Ada.Containers.Vectors;
with Ada.Strings.Unbounded;
package Document is new Ada.Containers.Vectors
  (Positive,                                                
   Ada.Strings.Unbounded.Unbounded_String);

您的主程序和其他软件包现在可以说
with Document
(如果您愿意,还可以使用Document;
)。

除了Simon的答案之外,您还可以将您在任何地方陈述的两行内容放在一个表格中。这可以在子程序内部,如主过程、库或其他任何地方

主要程序示例:

with Ada.Containers.Vectors;
with Ada.Strings.Unbounded;
procedure My_Main is
   package Document is new Ada.Containers.Vectors
     (Positive,
      Ada.Strings.Unbounded.Unbounded_String);
   -- use it or declare other stuff...
begin
   -- something...
end My_Main;

要跨多个源文件使用它,请将它放入您的一个软件包或Simon编写的单独文件中。

除了Simon的答案之外,您还可以将您在任何地方陈述的两行内容放入一个文件中。这可以在子程序内部,如主过程、库或其他任何地方

主要程序示例:

with Ada.Containers.Vectors;
with Ada.Strings.Unbounded;
procedure My_Main is
   package Document is new Ada.Containers.Vectors
     (Positive,
      Ada.Strings.Unbounded.Unbounded_String);
   -- use it or declare other stuff...
begin
   -- something...
end My_Main;
要在多个源文件中使用它,请将它放入一个包或Simon编写的单独文件中。

此外,要实际声明向量,您需要将其放入去极化部分:

my_document : document.vector;
然后,您可以使用向量中描述的方法,此外,还可以实际声明需要放入去极化部分的向量:

my_document : document.vector;
然后可以使用向量中描述的方法