Differenze tra le versioni di "Differenza fra Sub, Procedure e Function"
(Una versione intermedia di uno stesso utente non è mostrata) | |||
Riga 1: | Riga 1: | ||
Spesso i programmatori principianti del linguaggio Gambas si pongono la legittima domanda se vi siano delle differenze fra l'uso delle parole-chiave '''SUB''', '''PROCEDURE''' e '''FUNCTION'''. | Spesso i programmatori principianti del linguaggio Gambas si pongono la legittima domanda se vi siano delle differenze fra l'uso delle parole-chiave '''SUB''', '''PROCEDURE''' e '''FUNCTION'''. | ||
− | Anche se non è una regola rigida che possa dare errore, in Gambas una Funzione ''restituisce'' sempre un valore alla Funzione ''chiamante''; pertanto si ''preferisce'' definirla con la parola chiave '''FUNCTION''' (preceduta dalla parola chiave ''Public'' o ''Private'' a seconda ovviamente delle necessità), rispetto ad una routine che ''non'' restituisce alcun valore, e che - in tal caso - verrà definita con la parola chiave '''SUB''' o '''PROCEDURE''' (preceduta dalla parola chiave ''Public'' o ''Private'' a seconda ovviamente delle necessità). | + | Anche se non è una regola rigida che possa dare errore, in Gambas una Funzione ''restituisce'' sempre un valore alla Funzione ''chiamante''; pertanto si ''preferisce'' definirla con la parola chiave '''FUNCTION''' (preceduta dalla parola chiave ''Public'' o ''Private'' a seconda ovviamente delle necessità), rispetto ad una routine che ''non'' restituisce alcun valore, e che - in tal caso - verrà definita con la parola-chiave '''SUB''' o '''PROCEDURE''' (preceduta dalla parola chiave ''Public'' o ''Private'' a seconda ovviamente delle necessità). |
Ricapitolando: | Ricapitolando: | ||
− | <BR>- se la subroutine chiamata restituisce un valore alla Funzione ''chiamante'', allora la subroutine chiamata sarà considerata una ''Funzione'' in senso stretto, e verrà definita con la parola chiave '''Function''': | + | <BR>- se la subroutine chiamata restituisce un valore alla Funzione ''chiamante'', allora la subroutine chiamata sarà considerata una ''Funzione'' in senso stretto, e verrà definita con la parola-chiave '''Function''': |
Public/Private '''Function''' Nome_Funzione(parametro As tipo_valore, ......) As tipo_valore | Public/Private '''Function''' Nome_Funzione(parametro As tipo_valore, ......) As tipo_valore | ||
Riga 14: | Riga 14: | ||
End | End | ||
− | - se invece la subroutine chiamata <SPAN Style="text-decoration:underline">non</span> restituisce un valore alla Funzione ''chiamante'', allora la subroutine chiamata sarà considerata una mera ''Procedura'', e si preferisce definirla con la parola chiave '''Procedure''' o con '''Sub''': | + | |
+ | - se invece la subroutine chiamata <SPAN Style="text-decoration:underline">non</span> restituisce un valore alla Funzione ''chiamante'', allora la subroutine chiamata sarà considerata una mera ''Procedura'', e si preferisce definirla con la parola-chiave '''Procedure''' o con '''Sub''': | ||
Public/Private '''Procedure''' Nome_Procedura(parametro As tipo_valore, ......) | Public/Private '''Procedure''' Nome_Procedura(parametro As tipo_valore, ......) | ||
+ | |||
+ | ..... | ||
+ | ..... | ||
+ | |||
+ | End | ||
+ | |||
+ | Public/Private '''Sub''' Nome_Sub_Routine(parametro As tipo_valore, ......) | ||
..... | ..... |
Versione attuale delle 08:14, 20 nov 2024
Spesso i programmatori principianti del linguaggio Gambas si pongono la legittima domanda se vi siano delle differenze fra l'uso delle parole-chiave SUB, PROCEDURE e FUNCTION.
Anche se non è una regola rigida che possa dare errore, in Gambas una Funzione restituisce sempre un valore alla Funzione chiamante; pertanto si preferisce definirla con la parola chiave FUNCTION (preceduta dalla parola chiave Public o Private a seconda ovviamente delle necessità), rispetto ad una routine che non restituisce alcun valore, e che - in tal caso - verrà definita con la parola-chiave SUB o PROCEDURE (preceduta dalla parola chiave Public o Private a seconda ovviamente delle necessità).
Ricapitolando:
- se la subroutine chiamata restituisce un valore alla Funzione chiamante, allora la subroutine chiamata sarà considerata una Funzione in senso stretto, e verrà definita con la parola-chiave Function:
Public/Private Function Nome_Funzione(parametro As tipo_valore, ......) As tipo_valore ..... ..... Return valore End
- se invece la subroutine chiamata non restituisce un valore alla Funzione chiamante, allora la subroutine chiamata sarà considerata una mera Procedura, e si preferisce definirla con la parola-chiave Procedure o con Sub:
Public/Private Procedure Nome_Procedura(parametro As tipo_valore, ......) ..... ..... End
Public/Private Sub Nome_Sub_Routine(parametro As tipo_valore, ......) ..... ..... End