私は ada を初めて使用します。ベクター パッケージを定義し、それをメソッドに渡すことができるようにしたいのですが、どこでパッケージを定義すればよいのでしょうか。これが必要なコードです。
package Document is new Ada.Containers.Vectors(Positive,Unbounded_String);
use Document;
どこに置くべきかわからないので、メインと別の関数ファイルに表示されます。
私は ada を初めて使用します。ベクター パッケージを定義し、それをメソッドに渡すことができるようにしたいのですが、どこでパッケージを定義すればよいのでしょうか。これが必要なコードです。
package Document is new Ada.Containers.Vectors(Positive,Unbounded_String);
use Document;
どこに置くべきかわからないので、メインと別の関数ファイルに表示されます。
GNAT ( AdaCore の GPL バージョン、または FSF GCC バージョン) を使用している場合は、ファイルが必要ですdocument.ads
(メイン プログラムと他のファイルを配置するのと同じ作業ディレクトリ内)。
新しいパッケージDocument
は、他の 2 つのパッケージと '<code>with' する必要があります:Ada.Containers.Vectors
とAda.Strings.Unbounded
.
入れることはできませuse Document;
んdocument.ads
。それを利用するパッケージに入れる必要がありDocument
ますwith
。この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;
、(そして、必要に応じて) と言うことができますuse Document;
。
サイモンの回答に加えて、どこにでも述べた2行を宣言部分に入れることができます。これは、メイン プロシージャ、ライブラリ、またはその他の場所のようなサブプログラム内に配置できます。
主な手順の例:
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;
複数のソース ファイルで使用するには、パッケージの 1 つに入れるか、Simon が書いたように別のファイルに入れます。
これに加えて、実際にベクトルを宣言するには、宣言セクションに配置する必要があります。
my_document : document.vector;
次に、ベクターパッケージに記載されているメソッドを使用できます