Autore Topic: Corretta sintassi  (Letto 894 volte)

Offline dregi

  • Gambero
  • **
  • Post: 85
  • Non possum tuis usque tandem abutere patientiae?
    • Mostra profilo
Corretta sintassi
« il: 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?

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.725
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Corretta sintassi
« Risposta #1 il: 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ì.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.239
  • Tonno verde
    • Mostra profilo
Re:Corretta sintassi
« Risposta #2 il: 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:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline dregi

  • Gambero
  • **
  • Post: 85
  • Non possum tuis usque tandem abutere patientiae?
    • Mostra profilo
Re:Corretta sintassi
« Risposta #3 il: 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?

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.239
  • Tonno verde
    • Mostra profilo
Re:Corretta sintassi
« Risposta #4 il: 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.
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline dregi

  • Gambero
  • **
  • Post: 85
  • Non possum tuis usque tandem abutere patientiae?
    • Mostra profilo
Re:Corretta sintassi
« Risposta #5 il: 24 Settembre 2019, 15:09:08 »
Grazie.