如何在ada中打印两个值

时间:2014-12-13 16:47:36

标签: ada

如何在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中打印这个?

1 个答案:

答案 0 :(得分:0)

还有其他错误(我不知道try.rt_addrtry.rt_adrr是什么,而Ada并不原谅以不同的方式拼写相同名称。)

然而,回答我认为的主要问题:你不能像某些语言允许的那样连接字符串和整数(或任何其他数字类型)。因此,如果rt_addr是整数,则此表达式在任何地方都不合法:

"hello" & rt_addr

除非您已定义自己的"&",其中String参数和Integer参数,并且(可能)返回String。我已经看到了这一点,但我不相信这是通常的方法来实现这一目标。

输出两者的正常方法,假设你有一个像Useme这样的包输出整数,就是使用多个put

Ada.Text_IO.Put("Hello");
Try.Useme.Put(rt_addr);