Programación en Ada/Cláusula use
Definición
[editar]Si no se desea tener que escribir siempre Pila_Enteros.Poner para llamar a dicho procedimiento desde fuera del paquete, se puede utilizar la cláusula use, cuya sintaxis es la siguiente:
cláusula_use_paquete ::= use
identificador { , identificador } ;
Así pues, siguiendo con el ejemplo de la sección anterior, se podría escribir:
-- ...
declare
use
Pila_Enteros; N: Integer;begin
Poner (15); N := Quitar;end
;
Dicha cláusula use es semejante a una declaración y su ámbito llega al final del bloque. Incluso podría existir otra cláusula use más interna que se refiera al mismo paquete.
En el caso de existir varios paquetes anidados, se puede utilizar la notación punto para distinguirlos, por ejemplo:
package
P1is
package
P2is
-- ...
end
P2;-- ...
end
P2;
use
P1, P1.P2;-- Ilegal sería "use P2;"
Para utilizar el paquete Standard, que contiene todas las entidades predefinidas, no se necesita cláusula use.
Desventajas
[editar]Muchos proyectos prohíben el uso de esta cláusula porque dificulta la comprensión del código y la localización de los tipos o subprogramas importados. Si deseas usarla lo más recomendable es usar un único use por cada unidad y haciéndolo sólo de los paquetes más conocidos o de los predefinidos.