2

私はAdaを使用してNaturalから派生したクラスを印刷しようとしています。ただし、エラーが発生し続けますprefix of "image" attribute must be a type。グーグルはどうやらこのエラーについて何も役に立たないことを知っています。

このエラーを発生させた簡略化されたコードは次のとおりです。

with Ada.Text_IO;
use Ada.Text_IO;
with Layout; use Layout;
procedure temptest is
   term : Terminator_ID;
   begin
      term := Layout.Block_GetOpposite (1, Layout.REVERSED);
   Put_Line (Item => term'Image);
   end temptest;

Terminator_IDこれが私のLayoutパッケージの定義です:type Terminator_ID is new Natural range 1 .. 40;

このエラーの原因とそれを修正する適切な方法は何ですか?

4

1 に答える 1

5

どうやら、数値を文字列に変換するための構文はですType_Name'Image(var_containing_value)

コードを次のように変更しました。

with Ada.Text_IO;
use Ada.Text_IO;
with Layout; use Layout;
procedure temptest is
   term : Terminator_ID;
   begin
      term := Layout.Block_GetOpposite (1, Layout.REVERSED);
   Put_Line (Item => Terminator_ID'Image (term));
   end temptest;

そしてそれは今うまくコンパイルされます。

于 2012-10-01T01:46:39.210 に答える