PROCEDURE name[ par1[, par2[, ... ]]] ] ... END PROC[ expression ]
Questa coppia di parole chiave crea una procedura assegnandole un nome.
Il nome è quindi seguito da un elenco di parametri e la procedura deve
terminare con i comandi END PROC
. I comandi dovrebbero essere
posti su singole righe, ma non è obbligatorio.
Seguendo la convenzione in essere su altri BASIC dell'epoca, come il Simon's BASIC o il Tuned Simon's BASIC, il nome della procedura può anche contenere spazi. In tal caso, lo spazio finale non sarà considerato come parte del nome.
È possibile posizionare la definizione della procedura ovunque nel programma.
Quando ugBASIC incontra una definizione di procedura, la procedura viene
riconosciuta come tale e viene eseguito un salto all' END PROC
. In
questo modo non vi è alcun rischio di eseguire accidentalmente la procedura.
Di seguito al nome della procedura può essere posto un elenco di parametri. Questo crea un gruppo di variabili locali che possono essere caricate direttamente dal programma principale. Da notare che i valori da caricare nei parametri devono essere inseriti tra parentesi quadre come parte della chiamata di procedura. Questo sistema funziona altrettanto bene con costanti e variabili, ma anche array. Se è necessario immettere più di un parametro, i parametri devono essere separate da virgole.
@example
Come opzione è possibile indicare un valore da restituire da parte
della procedura. Il valore va indicato tra parentesi quadre.
Il valore sarà, quindi, copiato nella variable PARAM
e restituito
dalla chiamata, se la chiamata è stata fatta nel contesto di una espressione.
Importante: se il pragma OPTION CALL AS GOTO
è attivo, l'istruzione
sarà considerata un NOP
.
PROCEDURE test[ a, b ] PRINT "HELLO WORLD! "; (a+b) END PROC PROCEDURE sumOf( x, y ) END PROC[x+y] PROCEDURE hundred END PROC[100]
Si vedano anche i seguenti file di esempio:
PrcdEePrb
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!