Differenze tra le versioni di "Le Costanti"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
 
Se un valore è utilizzato in modo ripetuto all'interno dell'intero programma senza mai subire variazioni, è opportuno sostituirlo con un nome simbolico, definendo all'inizio del programma un identificatore di "Costante" mediante la parola chiave '''Const'''.
 
Se un valore è utilizzato in modo ripetuto all'interno dell'intero programma senza mai subire variazioni, è opportuno sostituirlo con un nome simbolico, definendo all'inizio del programma un identificatore di "Costante" mediante la parola chiave '''Const'''.
  
Il nome attribuito alla ''Costante'' può contenere caratteri alfabetici (solitamente per convenzione in maiuscolo) e numerici posti nelle modalità accettate da Gambas.
+
Il nome attribuito alla ''Costante'' può contenere caratteri alfabetici (solitamente per convenzione in maiuscolo) e numerici posti nelle modalità accettate da Gambas. <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>
  
 
Ovviamente il valore assegnato all'inizio alla ''Costante'', <SPAN style="text-decoration:underline">non può essere variato</span> nel corso del programma.
 
Ovviamente il valore assegnato all'inizio alla ''Costante'', <SPAN style="text-decoration:underline">non può essere variato</span> nel corso del programma.
  
Essendo poste al di fuori delle routine, le ''Costanti'' hanno la qualità di essere ''globali'' <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>. Inoltre, esse possono essere ''Pubbliche'' o ''Private''.
+
Essendo poste al di fuori delle routine, le ''Costanti'' hanno la qualità di essere ''globali'' <SUP>&#091;[[#Note|Nota 2]]&#093;</sup>. Inoltre, esse possono essere ''Pubbliche'' o ''Private''.
  
 
Esempio:
 
Esempio:
Riga 25: Riga 25:
  
 
==Particolarità dell'uso della Costante in Gambas==
 
==Particolarità dell'uso della Costante in Gambas==
Alle ''Costanti'' <SPAN Style="text-decoration:underline">in taluni casi</span> è possibile associare una variabile, una funzione o un'operazione. <B><SUP>&#091;[[#Note|Nota 2]]&#093;</sup></b>
+
Alle ''Costanti'' <SPAN Style="text-decoration:underline">in taluni casi</span> è possibile associare una variabile, una funzione o un'operazione. <B><SUP>&#091;[[#Note|Nota 3]]&#093;</sup></b>
  
 
Il valore della ''Costante'' deve essere definito in fase di dichiarazione e non deve puntare a nessuna cosa al di fuori della dichiarazione stessa.
 
Il valore della ''Costante'' deve essere definito in fase di dichiarazione e non deve puntare a nessuna cosa al di fuori della dichiarazione stessa.
Riga 48: Riga 48:
  
 
=Note=
 
=Note=
[1] Riguardo ai valori assegnabili alle Costanti si veda anche la pagina relativa alle [[Espressioni_costanti|Espressioni costanti]].
+
[1] E' possibile utilizzare, come identificatore di Costante, il nome di una parola chiave, di una funzione oppure di un numero, purché tale nome - normalmente inutilizzabile - sia posto all'interno di due parentesi graffe.
 +
<BR> Vedere la seguente pagina: [[Usare_come_identificatore_di_variabile_il_nome_di_una_parola_chiave_o_di_una_funzione_ovvero_un_carattere_non_consentito|Usare come identificatore di variabile il nome di una parola chiave o di una funzione ovvero un carattere non consentito]]
  
[2] ''Globale'': ha effetto in tutta la classe e in tutte le funzioni contenute nella ''stessa'' classe.
+
[2] Riguardo ai valori assegnabili alle Costanti si veda anche la pagina relativa alle [[Espressioni_costanti|Espressioni costanti]].
 +
 
 +
[3] ''Globale'': ha effetto in tutta la classe e in tutte le funzioni contenute nella ''stessa'' classe.
  
  

Versione delle 17:07, 25 ott 2021

Se un valore è utilizzato in modo ripetuto all'interno dell'intero programma senza mai subire variazioni, è opportuno sostituirlo con un nome simbolico, definendo all'inizio del programma un identificatore di "Costante" mediante la parola chiave Const.

Il nome attribuito alla Costante può contenere caratteri alfabetici (solitamente per convenzione in maiuscolo) e numerici posti nelle modalità accettate da Gambas. [Nota 1]

Ovviamente il valore assegnato all'inizio alla Costante, non può essere variato nel corso del programma.

Essendo poste al di fuori delle routine, le Costanti hanno la qualità di essere globali [Nota 2]. Inoltre, esse possono essere Pubbliche o Private.

Esempio:

Private Const NOME_DELLA_COSTANTE As Integer = 4
' Ora, quindi, all'interno del programma si potrà usare l'identificatore NOME_DELLA_COSTANTE al posto del numero 4


Public Sub Form_Open()

 Dim a As Integer

 a = 5 * NOME_DELLA_COSTANTE
 
 Print a

End

In console sarà mostrato coerentemente il risultato: 20

Particolarità dell'uso della Costante in Gambas

Alle Costanti in taluni casi è possibile associare una variabile, una funzione o un'operazione. [Nota 3]

Il valore della Costante deve essere definito in fase di dichiarazione e non deve puntare a nessuna cosa al di fuori della dichiarazione stessa.
Pertanto, ad esempio:

Public Const NOME_COSTANTE As Integer = 1             Corretto
Private Const NOME_COSTANTE As String = "aBc"         Corretto
Private Const NOME_COSTANTE As String = "\x0F"        Corretto
Private Const NOME_COSTANTE As Integer = 2108 * 1969  Corretto
Public Const NOME_COSTANTE As Long = CLong(1234)               ERRATO !
Private Const NOME_COSTANTE As Boolean = (Not nome_variabile)  ERRATO !

La Costante in Gambas consente di sostituire la funzione Chr() con i caratteri "escape" attualmente implementati ed attivi, come i seguenti:

Carattere escape|Equivalente ASCII
\t|Chr(9)
\n|Chr(10)
\r|Chr(13)

Così, avremo ad esempio:

Private Const NOME_COSTANTE As String = "\n"


Note

[1] E' possibile utilizzare, come identificatore di Costante, il nome di una parola chiave, di una funzione oppure di un numero, purché tale nome - normalmente inutilizzabile - sia posto all'interno di due parentesi graffe.
Vedere la seguente pagina: Usare come identificatore di variabile il nome di una parola chiave o di una funzione ovvero un carattere non consentito

[2] Riguardo ai valori assegnabili alle Costanti si veda anche la pagina relativa alle Espressioni costanti.

[3] Globale: ha effetto in tutta la classe e in tutte le funzioni contenute nella stessa classe.


Riferimenti