CALL name CALL name parameters "[" [par1 [, par2[, ...]]] "]"
Il comando CALL
viene utilizzato per chiamare una procedura (o subroutine)
definita in precedenza all'interno dello stesso programma. Una procedura è un
blocco di codice separato progettato per eseguire un'attività specifica.
Utilizzando CALL
, è possibile eseguire il codice all'interno della procedura più
volte, senza dover riscrivere le stesse istruzioni ogni volta.
Prima di poter chiamare una procedura, è necessario definirla. In ugBASIC, una
procedura è in genere definita con la parola chiave PROCEDURE
seguita dal nome
della procedura. All'interno della procedura, si scrivono le istruzioni che devono essere
eseguite quando la procedura viene chiamata.
Per eseguire il codice all'interno della procedura, si utilizza il comando CALL
seguito dal nome della procedura. Quando il programma raggiunge questa riga, il controllo
viene trasferito alla prima istruzione nella procedura. Una volta eseguite tutte le istruzioni
nella procedura, il controllo torna alla riga dopo CALL
.
Dividere un programma in procedure rende il codice più organizzato e facile da leggere, e una procedura può essere chiamata più volte da diverse parti del programma, evitando la duplicazione del codice. Le procedure possono essere utilizzate per suddividere un problema complesso in sottoproblemi più semplici, il che aiuta a creare una struttura gerarchica nel programma.
Puoi anche passare argomenti a una procedura, racchiusi in parametri quadrati: gli argomenti sono valori che vengono passati alla procedura quando viene chiamata e che possono essere utilizzati all'interno della procedura stessa. Se la procedura restituisce un valore, l'istruzione chiamante lo ignora.
Suddividendo il codice in procedure, diventa più facile da comprendere e gestire, e riutilizzando le stesse procedure in più parti del programma, riduci le possibilità di introdurre errori. Infine, se hai bisogno di modificare una parte del codice, puoi semplicemente modificare la procedura corrispondente, senza dover apportare modifiche in tutte le parti del programma che utilizzano quella parte del codice.
Importante: se è in vigore il pragma OPTION CALL AS GOTO
, l'istruzione verrà considerata
come un GOTO
anziché un GOSUB
. Quindi, nessun valore di ritorno e nessun ritorno,
per niente. Questo non si applica alle chiamate di sistema.
CALL factorial[42]
Si vedano anche i seguenti file di esempio:
Ca
Se si riscontra un problema nell'utilizzare questo comando, se si ritiene che vi sia un bug oppure che la spiegazione sia poco chiara, è possibile aprire una segnalazione per questa parola chiave su GitHub. Grazie!