Utente:Link~itwikibooks/Sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 15:
L'istruzione '''with''' aggiunge il package '''Ada.Text_IO''' al programma. Questo package è presente in ogni compilatore Ada e contiene tutte le funzionalità necessarie all'I/O testuale.
l'istruzione '''with''' rende disponibili le dichiarazioni di '''Ada.Text_IO''' alla procedura '''Hello''', includendo quindi i tipi, i sottoprogrammi, e tutto ciò che è stato dichiarato per uso pubblico in '''Ada.Text_IO'''. In Ada possiamo paragonare i package a delle cassette per attrezzi: '''Text_IO''', ad esempio, fornisce una raccolta di utilissimi strumenti per l'I/O testuale, racchiusi in un modulo di facile accesso.
 
Esaminiamo il resto del programma.
Analizziamo la procedura main: come possiamo notare, in Ada non ha bisogno di essere chiamata "main", qualsiasi nome va bene (in questo caso, ad esempio si chiama '''Hello'''). In seguito troviamo la chiamata a funzione '''Ada.Text_IO.Put_Line''' che scrive il testo fornitogli in input sul file di output.
 
Purtroppo, ci si accorge facilmente che l'istruzione '''with''' rende il contenuto del package visibile atraverso selezione, ovvero abbiamo bisogno di specificare ogni volta la provenienza della procedura indicando il nome del package. In programmi molto semplici come questo, possiamo accettarlo, ma in programmi più complessi, come possiamo fare? è necessaria una scorciatoia.
A questo punto abbiamo due opzioni:
 
*rinominare il package.
*l'istruzione '''use'''.
 
vediamoli più nel dettaglio:
 
==="Hello World!" con package rinominato===
 
Rinominando il package è possibile fornire un nome più corto.
 
<source lang=ada>
with Ada.Text_IO;
 
procedure Hello is
package IO renames Ada.Text_IO;
begin
IO.Put_Line("Hello, world!");
IO.New_Line;
IO.Put_Line("I am an Ada program with package rename.");
end Hello;
</source>
 
==="Hello World!" con istruzione '''use'''===
 
L'istruzione '''use''' rende l'accesso al package diretto.
 
<source lang=ada>
with Ada.Text_IO;
 
procedure Hello is
use Ada.Text_IO;
begin
Put_Line("Hello, world!");
New_Line;
Put_Line("I am an Ada program with package use.");
end Hello;
</source>