在过程中使用包规范

inf*_*ite 0 ada

我想在一个过程中使用一个包规范.

有些东西不见了,但我不知道是什么.

using_ads_package.adb:14:11:"var"不可见

using_ads_package.adb:14:11:第8行的不可见声明

with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
with Ada.Text_IO.Unbounded_IO;  use Ada.Text_IO.Unbounded_IO;

Procedure using_ads_package is

   Package variable is

      var : Unbounded_String ;

   end variable ;

Begin

   get_line(var);

End using_ads_package ;
Run Code Online (Sandbox Code Playgroud)

Sim*_*ght 5

procedure Using_Ads_Package is
   package Variable is
      Var : Unbounded_String;
   end Variable;
begin
Run Code Online (Sandbox Code Playgroud)

你已经创建了一个新的范围package Variable.在外面Variable,Var不是直接可见的.

在外面Variable,你有两种方式可以参考Var.

首先,您可以命名明确声明它的包:

   Get_Line (Variable.Var);
Run Code Online (Sandbox Code Playgroud)

或者,您可以use Variable:

   package Variable is
      Var : Unbounded_String;
   end Variable;
   use Variable;
begin
   Get_Line (Var);
Run Code Online (Sandbox Code Playgroud)