我如何使用“单独"关键词

时间:2015-01-18 07:32:20

标签: ada

我无法弄清楚Ada中的关键字separate及其深度概念。请举一个小例子来帮助我理解?

假设我有一个嵌套程序

with ada.text_io; use ada.text_io;
procedure main is
   procedure proc is
   begin
      put_line ("i am proc");
   end proc;
begin
   put_line ("main");
end main;

如何使用单独的关键字?

2 个答案:

答案 0 :(得分:2)

您主要使用单独的关键字来实现2种效果之一。

  1. 操作系统特定的操作。 (将2个版本的过程/函数放在不同的目录中,并编译2个不同的目标)
  2. 将冗长的程序与周围的代码分开。
  3. 以下是显示语法的示例。

    package_x.ads

    package Package_X is
    
       procedure Foo;
       procedure Sep;
    
    end Package_X;
    

    package_x.adb

    package body Package_X is
    
       procedure Foo is 
       begin
          null;
       end Foo;
    
       procedure Sep is separate;
    
    end Package_X;
    

    package_x-sep.adb

    separate (Package_X) procedure Sep is 
    begin
       null;
    end Sep;
    

答案 1 :(得分:1)

separate 关键字创建一个独立编译的编译单元,即子单元。 separate 的参数是指子单元是子单元的包。

因此,如果您有一个包体X,那么您从中删除过程Y,您通过创建一个放置Y的新文件创建一个X的子单元,并在其开头放置“separate(X)”该文件,表示Y实际上是X的一部分。