如何在ada下面打印两个值是我的代码可以说有两个文件一个广告(规范),即try.ads和其他主文件,即main.adb
try.ads
package try is
type My_limit is range 0..31;
package Useme is new ada.Text_IO.Integer_IO(My_limit);
end try;
main.adb
with try
procedure main is
demo:try.rt_adrr:=3;
begin
try.Useme.put("hello" & try.rt_addr); -- error is Missing arguement for parameter "item" call to "put"
end main;
我知道错误是因为“try.useme.put”因为“hello”字符串未在“Useme”包中定义所以请帮助我,我想在单个语句hello和3中打印这个?
答案 0 :(得分:0)
还有其他错误(我不知道try.rt_addr
或try.rt_adrr
是什么,而Ada并不原谅以不同的方式拼写相同名称。)
然而,回答我认为的主要问题:你不能像某些语言允许的那样连接字符串和整数(或任何其他数字类型)。因此,如果rt_addr
是整数,则此表达式在任何地方都不合法:
"hello" & rt_addr
除非您已定义自己的"&"
,其中String
参数和Integer
参数,并且(可能)返回String
。我已经看到了这一点,但我不相信这是通常的方法来实现这一目标。
输出两者的正常方法,假设你有一个像Useme
这样的包输出整数,就是使用多个put
Ada.Text_IO.Put("Hello");
Try.Useme.Put(rt_addr);