我无法弄清楚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;
如何使用单独的关键字?
答案 0 :(得分:2)
您主要使用单独的关键字来实现2种效果之一。
以下是显示语法的示例。
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的一部分。