Italian [B4A] Il nome di una variabile non può coincidere con quello di una routine

LucaMs

Expert
Licensed User
Longtime User
La cosa si risolve facilmente differenziando tra:
New = "abc" <-- new variabile locale
<module name>.New(58) <-- chiamata a funzione di nome New definita nel modulo X
Non è detto che una routine (metodo o funzione) richieda un parametro. Comunque un'assegnazione non potrà certo contenere il solo identificativo, come è invece la chiamata ad una funzione/metodo senza parametri.

In conclusione, direi che è molto meglio che sia obbligatorio distinguere le varie cose citate.
 

udg

Expert
Licensed User
Longtime User
Comunque un'assegnazione non potrà certo contenere il solo identificativo, come è invece la chiamata ad una funzione/metodo senza parametri.
temp = New <-- intendi qiuesto?
Se tieni buona la mia proposta avremmo due casi entrambi validi:
temp = New <-- temp prend eil valore della variabile locale New
temp = main.new <-- temp prende il valore ritornato dalla funzione/metodo senza parametri New

NB: e se esistesse anche una variabile globale denominata New nel modulo main? Ecco, questo potrebbe essere il punto dove il compilatore dovrebbe un attimino prendersela..e non consentirlo. Intendo dire, non consentire (o avvisare) che esista SIA la variabile globale Main.New CHE il metodo Main.New
 

Giorgio Brausi

Member
Licensed User
Longtime User
Una stranezza che definirei scandalosamente ridicola, perché non rispetta lo scope così come previsto in tutti i moderni linguaggi di programmazione.

Visibilità (programmazione) - Wikipedia
https://it.wikipedia.org/wiki/Visibilità_(programmazione)

Da un linguaggio 'moderno' come B4A mi sarei aspettato che, come minimo, rispettasse determinate caratteristiche.
Ovviamente, questa è la mia opinione.
 
Top