Variabili, costanti e tipi di dato

Al contrario del Javascript in VBScript è possibile differenziare variabili e costanti, dove una variabile può assumere un valore diverso a seconda delle circostanze; una costante invece ha un valore statico predefinito. Non è obbligatorio dichiarare una costante come tale, è sufficiente dichiarare una variabile in maniera statica e non associarla mai a nulla che possa variare; ad ogni modo le buone regole di programmazione consigliano di dichiarare in maniera esplicita questa differenza.

All'atto della dichiarazione di una variabile è possibile specificare il tipo di dato che il suo valore potrà assumere, ma approfondiremo questo tema in seguito, passando in rassegna tutti i tipi di dati disponibili; per il momento consideriamo solo i due più comunemente utilizzati: String (dato di tipo stringa) ed Integer (dato di tipo numerico intero).


Variabili

Per dichiarare una variabile si utilizza la parola chiave (facoltativa ma consigliata) Dim e non è possibile valorizzarla in fase di dichiarazione; vediamo un esempio corretto seguito da un esempio scorretto:

' CORRETTO
Dim stringa
stringa = "Hello World!"

' SCORRETTO
Dim stringa = "Hello World!"

Introduciamo un'altra caratteristica del VBScript in fase di dichiarazione delle variabili: si tratta della dichiarazione Option Explicit, la quale rende obbligatoria la dichiarazione di una variabile con la parola chiave Dim.<

Scomodo?
No... Corretto!

Un esempio completo:

Option Explicit

Dim stringa

stringa = "Hello World!"

E' possibile inizializzare una serie di variabili (anche di tipo diverso) sulla stessa riga con un unico Dim, separando i nomi da una virgola:

Dim var1, var2, var3

Nell'introduzione abbiamo accennato al fatto che una variabile può essere di tipi differenti: in questo caso è possibile effettuare un'assegnazione in fase di dichiarazione:

Option Explicit

Dim s As String
Dim n As Integer

s = "Hello World!"
n = 10

La parola chiave As esegue l'assegnazione; una variabile di tipo numerico va sempre valorizzata senza i doppi apici, oppure restituirà un errore, dato che si starebbe tentando di valorizzare un numerico intero con un valore stringa.

Un altro esempio:

Option Explicit

Dim a As Integer
Dim b As Integer
Dim c As Integer

a = 10
b = 20
c = a + b

document.write c

In questo modo effettuiamo una somma tra due variabili di tipo numerico, impostando il risultato in una terza; di seguito effettuiamo la sua stampa a video.

In VBScript le variabili possono dichiarare un oggetto di tipo ActiveX: in questo caso si utilizza la parola chiave Set per inizializzare l'oggetto, e Dim per inizializzare il nome della variabile:

Option Explicit
Dim x

Set x = CreateObject("Oggetto.Classe")

Costanti

Le costanti non sono soggette ai tipi di dato ed utilizzano la parola chiave Const per l'inizializzazione; al contrario delle variabili, le costanti possono essere dichiarate e valorizzate sulla stessa riga:

Const s = "Hello World!"

Tipi di dati

Di seguito l'elenco dei tipi di dati disponibili in VBScript con relativa descrizione e valore:

Descrizione
Boolean Può assumere i valori True o False
Byte Numerico intero compreso in un intervallo che va da 0 a 255
Currency Utilizzato per esprimere valore monetario; va da -922.337.203.685.477,5808 a 922.337.203.685.477,5807
Date Utile per trattare le date; compreso in un intervallo che va dal 1 Gennaio 100 al 31 Dicembre 9999
Double Numerico in virgola mobile a precisione doppia, compreso in un intervallo che va da -1,79769313486232E308 a 1,79769313486232E308
Integer Numerico intero compreso in un intervallo che va da -32.768 a 32.767
Long Numerico intero compreso in un intervallo che va da -2.147.483.648 a 2.147.483.647
Object Può contenere un oggetto, ad esempio di tipo ActiveX
Single Numerico in virgola mobile a precisione singola, compreso in un intervallo che va da -3,402823E38 a 3,402823E38
String Adatto per un valore di tipo stringa testuale di lunghezza variabile, fino ad un massimo di circa 2 miliardi

Consiglio di pensare oculatamente al tipo di dato da scegliere per una variabile, dato che una scelta sbagliata potrebbe comportare un notevole dispendio di risorse; se ad esempio abbiamo bisogno di trattare un numero che sappiamo non supererà mai il valore 100, è opportuno utilizzare un tipo Byte piuttosto che Integer o addirittura Long.

Autore: Luca Ruggiero