Skip to content

Moduli e uses ​

Man mano che un programma cresce, conviene suddividerlo in file più piccoli e riutilizzabili. In NeoObjectPascal questo si fa con la clausola uses, che carica sia le librerie interne sia i moduli in file che scrivi tu stesso.

La clausola uses ​

La clausola uses compare all'inizio del programma, prima di qualsiasi dichiarazione. Elenca i moduli da caricare, separati da virgola, e termina con ;:

npas
uses internal.math, internal.string;

begin
    WriteLn("Máximo: ", max(10, 20));
    WriteLn("Maiúsculas: ", toUpperCase("neo"));
end.
Saída
 Máximo: 20 Maiúsculas: NEO 

Dopo uses, tutte le funzioni dei moduli sono disponibili come se fossero state dichiarate nel tuo stesso file.

Librerie interne vs. moduli in file ​

Esistono due tipi di moduli, distinti dal prefisso:

FormaOrigineEsempio
internal.<nome>Librerie incluse nell'interprete stessouses internal.datetime;
<cartella>.<modulo>File .npas relativo al tuo programmauses utils.matematica;

Il prefisso internal. è riservato: il runtime lo riconosce e carica la libreria dall'interno del JAR. Qualsiasi altro percorso è trattato come un file nel tuo progetto.

Creare un modulo in file ​

Un modulo è semplicemente un file .npas con dichiarazioni di funzioni, procedure o variabili. Ad esempio, crea matematica.npas:

npas
// matematica.npas
function somar(a: Integer, b: Integer): Integer
begin
    return a + b;
end;

function subtrair(a: Integer, b: Integer): Integer
begin
    return a - b;
end;

E usalo nel programma principale, nella stessa directory:

npas
// programa.npas
uses matematica;

begin
    WriteLn(somar(10, 5));
    WriteLn(subtrair(10, 5));
end.
Saída
 15 5 

L'interprete cerca matematica.npas a partire dalla directory del file principale.

Il separatore dei parametri è la virgola

Quando dichiari parametri tipizzati, separali con la virgola: function somar(a: Integer, b: Integer). Non usare il punto e virgola tra i parametri.

Moduli gerarchici ​

Puoi organizzare i moduli in sottocartelle usando il punto come separatore di percorso. uses utils.matematica; carica il file utils/matematica.npas, relativo al programma principale:

text
projeto/
├── programa.npas
└── utils/
    └── matematica.npas
npas
// programa.npas
uses utils.matematica;

begin
    WriteLn(somar(2, 3));
end.
Saída
 5 

Caricare più moduli ​

Un'unica clausola uses può combinare librerie interne e moduli propri, tutti separati da virgola:

npas
uses internal.math, internal.string, utils.matematica;

begin
    WriteLn(square(4));              // de internal.math
    WriteLn(quote("olá"));          // de internal.string
    WriteLn(somar(1, 1));           // do seu módulo utils.matematica
end.
Saída
 16 "olá" 2 

Buone pratiche ​

  • Raggruppa le funzioni correlate in uno stesso modulo (ad esempio, tutto ciò che riguarda il testo in un texto.npas).
  • Preferisci molti file piccoli e coesi a un unico file gigante.
  • Usa sottocartelle (utils., dominio.) per organizzare i moduli per area del sistema.
  • C'è una sola clausola uses per programma: elenca tutti i moduli al suo interno.

Di seguito, scopri in dettaglio ciascuna delle Librerie interne.