我在寻找一种将Put()函数与我创建的自定义类型一起使用的方法。我该怎么办?
with Ada.Text_IO, Ada.Integer_Text_IO;
use Ada.Text_IO, Ada.Integer_Text_IO;
procedure main is
type count is range -2..2 ;
begin
Put(counter);
end main;
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
Builder results
C:\Users\***********\Desktop\ada project\src\main.adb
26:11 expected type "Standard.Integer"
26:7 no candidate interpretations match the actuals:
26:7 possible missing instantiation of Text_IO.Integer_IO
Run Code Online (Sandbox Code Playgroud)
您缺少实例,Counter并且没有子程序Put接受type参数Count。一些选项:
Image属性。with Ada.Text_IO;
procedure Main is
type Count is range -2 .. 2;
Counter : Count := 1;
begin
Ada.Text_IO.Put (Counter'Image); -- Counter'Image returns a String
-- or
Ada.Text_IO.Put (Count'Image (Counter));
end Main;
Run Code Online (Sandbox Code Playgroud)
Integer。with Ada.Integer_Text_IO;
procedure Main is
type Count is range -2 .. 2;
Counter : Count := 1;
begin
Ada.Integer_Text_IO.Put (Integer (Counter));
end Main;
Run Code Online (Sandbox Code Playgroud)
with Ada.Integer_Text_IO;
procedure Main is
subtype Count is Integer range -2 .. 2;
Counter : Count := 1;
begin
Ada.Integer_Text_IO.Put (Counter);
end Main;
Run Code Online (Sandbox Code Playgroud)
Ada.Text_IO.Integer_IO。with Ada.Text_IO;
procedure Main is
type Count is range -2 .. 2;
Counter : Count := 1;
package Count_Text_IO is
new Ada.Text_IO.Integer_IO (Count);
begin
Count_Text_IO.Put (Counter);
end Main;
Run Code Online (Sandbox Code Playgroud)