come rendere pubblica una variabile
Quanto scritto e spiegato da Gianluigi va ben compreso.
Ritengo vada distinta la... "Globalità" di una variabile dalla sua "Pubblicità".
A grandi linee possiamo dire che la "Globalità" attiene all'attitudine, alla capacità di una variabile di essere vista (scope) all'interno di una Classe o di un Modulo da noi creati. Al riguardo va detto che anche la Classe FMain o il Modulo Main.module sono, in fondo, da noi generati, seppur automaticamente.
Pertanto, una variabile meramente "Globale" sarà visibile (ossia potrà essere invocata ed utilizzata) in un qualunque parte della Classe o del Modulo ove essa è stata "dichiarata".
La "Pubblicità" di una variabile è l'attitudine a essere "vista" (ossia ad essere invocata ed utilizzata) anche nelle altre Classi o Moduli da noi creati.
Va sottolineato che una variabile "Pubblica" è di per sé anche "Globale".
perché alcune variabili hanno il simbolo di dollaro
E' semplicemente e soltanto una mera scelta di alcuni programmatori al fine - per lo più - di distinguere visivamente il tipo di una variabile da un altro tipo (senza che vi sia la necessità di andare a vedere come è stata dichiarata la variabile).
Se dunque per mio personale costume sono solito ad esempio anteporre ogni variabile di tipo String con il simbolo del dollaro, quando nel corpo del codice - soprattutto se molto vasto - vedrò quel simbolo, saprò immediatamente anche dopo molto tempo che quel nome identificatore si riferisce ad una variabile di tipo String.
Insomma non esiste un protocollo ufficiale, una norma stringente del linguaggio, né alcuna necessarietà (fatta eccezione per alcuni caratteri particolari, nonché per le
parole-chiave).
Si potrebbe obiettare che esiste una
convenzione per nominare le variabili, in virtù della quale per esempio il
dollaro serve a distinguere le variabili globali Private.
A ciò si può agevolmente rispondere che la "convenzione" è un "
venire insieme", un accordo, in questo caso extra-linguaggio,
non vincolante.
Infatti se io dichiaro:
Private numero As String
non commetto alcun errore di sintassi,
fatta eccezione - come già detto - per alcuni caratteri particolari, nonché per le parole-chiave.
A conferma di ciò v'è la prima riga della pagina che ho sopra segnalato, che così recita:
"
The naming conventions are not required by the compiler."
Anche la Convenzione conferma, dunque, in sé l'arbitrarietà della scelta da parte del programmatore dell'identificatore di una area di memoria ad allocazione automatica, ...fatta ovviamente eccezione per alcuni caratteri particolari, nonché per le
parole-chiave...peraltro, nulla osta che si possa anche adottare l'elenco della rappresentazione testuale dei tipi di dati di Gambas indicato alla riga 1202 nel file header sorgente: "
.../main/share/gambas.h ".
perché alcune variabili hanno il simbolo .... cancelletto
In questo caso, contrariamente al simbolo del dollaro, il cancelletto #, come prefisso temporaneo di una variabile, è specifico e richiesto dal linguaggio Gambas nella gestione - in particolare "lettura" e "scrittura" - dei flussi di dati con variabili di tipo "File", "Stream" o "Process".
Il simbolo del cancelletto è dunque in questi casi necessario, pena la sollevazione di un errore.
Non è possibile adottarlo, però, come normale carattere facente parte del nome di una Variabile, né di una Costante, a pena di sollevazione di un "
Errore di sintassi".