Gambas-it

Gambas3 => Domande tecniche => Topic aperto da: dregi - 22 Settembre 2019, 12:45:22

Titolo: Corretta sintassi
Inserito da: dregi - 22 Settembre 2019, 12:45:22
La chiamata ad una Sub FerrariVince funziona sia che la si scriva così:  FerrariVince sia così FerrariVince () Qual'è il modo più corretto di scriverla?

Una Sub, una Variabile possono essere definite Public o Private, i loro nomi quando sono definite Public sono visibili e richiamabili in tutto il progetto, quando Private sono "visibili" solo nella classe dove si trovano. Con Dim è possibile definire una variabile solo dentro ad una Sub. E' tutto corretto?
Titolo: Re:Corretta sintassi
Inserito da: vuott - 22 Settembre 2019, 14:04:15
La chiamata ad una Sub FerrariVince funziona sia che la si scriva così:  FerrariVince sia così FerrariVince () Qual'è il modo più corretto di scriverla?
Non mi risulta che, soprattutto per le sottoprocedure create dall'utente programmatore, Gambas preveda una modalità più "corretta" di un'altra.
Io sono solito porre comunque le due parentesi tonde alla fine dell'identificatore della funzione chiamante, anche quando la sottoprocedura chiamata non prevede alcun parametro formale. ...ma è una mia scelta.



Una Sub, una Variabile possono essere definite Public o Private, i loro nomi quando sono definite Public sono visibili e richiamabili in tutto il progetto, quando Private sono "visibili" solo nella classe dove si trovano. Con Dim è possibile definire una variabile solo dentro ad una Sub. E' tutto corretto?
Sì.
Titolo: Re:Corretta sintassi
Inserito da: Gianluigi - 22 Settembre 2019, 18:19:22
La chiamata ad una Sub FerrariVince funziona sia che la si scriva così:  FerrariVince sia così FerrariVince () Qual'è il modo più corretto di scriverla?

Come ha già risposto vuott in questo caso specifico, vale a dire nel caso si una Sub che non restituisce valore, si tratta di gusti, ma se vuoi far ben capire che stai chiamando un metodo e non una proprietà metti le parentesi così è chiaro a tutti.

Credo sia doveroso aggiungere che in Gambas puoi usare una Sub come una Function, vale a dire che la tua Sub può restituire un valore esattamente come una Function, in questo caso l'uso delle parentesi è obbligatorio anche se non sono richiesti parametri.

 :ciao:
Titolo: Re:Corretta sintassi
Inserito da: dregi - 24 Settembre 2019, 12:16:19
Magari con le configurazioni hardware che ormai vanno per la maggiore, ci si potrebbe anche non porre il problema, io per primo ho ben 16 Gb di RAM, ma ho notato leggendo codice qua e là che la tendenza comune in Gambas è quella di dichiarare Public qualsiasi Sub, ma questo non consuma maggiori risorse?
Titolo: Re:Corretta sintassi
Inserito da: Gianluigi - 24 Settembre 2019, 12:25:18
Magari con le configurazioni hardware che ormai vanno per la maggiore, ci si potrebbe anche non porre il problema, io per primo ho ben 16 Gb di RAM, ma ho notato leggendo codice qua e là che la tendenza comune in Gambas è quella di dichiarare Public qualsiasi Sub, ma questo non consuma maggiori risorse?

Public e Private non sono una questione di risorse ma di visibilità.
Se la routine deve essere letta (vista) da altra classe o modulo allora occorre che sia pubblica altrimenti la crei privata.
Titolo: Re:Corretta sintassi
Inserito da: dregi - 24 Settembre 2019, 15:09:08
Grazie.