Guffa | Foto | Programmering

Att deklarera variabler

Två typer av variabler

I VBScript kan man deklarera variablerna innan man använder dem, eller också kan man bara använda dem ändå, då skapas de när det behövs.

Det är ju smidigt att variablerna skapas eftersom, så att man slipper deklarera dem. Tyvärr så betalar man kanska mycket för denna service. De variabler som man inte deklarerar blir långsammare än de som man deklarerar. Skillnaden är ganska stor dessutom, det tar ganska precis dubbelt så lång tid att komma åt variabeln varje gång den används.

Anledningen till att skillnaden är så stor beror på att variablerna som man deklarerar skapas när koden kompileras. Därmed står det i den kompilerade koden exakt var i minnet de variablerna ligger. De variabler som inte deklareras finns ju inte när koden kompileras, alltså står bara variabelnamnet i den kompilerade koden. Varje gång man använder en sådan variabel så måste den leta igenom listan med alla variabler som finns för att se om en variabel med det namnet finns eller inte.

Bättre koll på variablerna

Förutom att koden blir snabbare av att deklarera variablerna, så får man också bättre koll på vilka variabler som används i koden. Dim-satserna blir ju helt enkelt en lista på alla variabler i koden. Du ser vilka variabler som finns, så att du inte använder samma namn igen av misstag.

Var i koden ska variablerna deklareras?

För funktionens skull så spelar det absolut ingen roll var i koden Dim-satserna står. Variablerna skapas när koden kompileras, oavsett var de står i koden. Det är alltså precis som om alla Dim-satser körs först, sedan resten av koden.

Det är dock lämpligt att sätta Dim-satserna först i koden, eftersom de ändå körs först av allt. Ifall man sprider ut Dim-satserna i koden så tappar man överblicken över variblerna. Det är också missvisande, eftersom det är lätt att tro att variabeln skapas där Dim-satsen står i koden.

Option Explicit

Ifall man sätter kommandot Option Explicit först i koden så innebär det att man måste deklarera alla variabler som man använder. Ifall man använder en variabel som inte är deklarerad så får man ett felmeddelande.

Du får en kontroll på att du inte har glömt att deklarera några variabler, men det är även ett skydd mot stavfel i variabelnamn. Ifall man stavar fel på ett variabelnamn och inte har Option Explicit, så skapas helt enkelt en ny variabel med det felaktiga namnet. Koden fortsätter att köras, och den nya tomma variabeln används istället för den variabel som du avsåg att använda, vilket ofta resulterar i fel som är svåra att spåra.

Option Explicit kan bespara dig många timmar av felsökning efter värden som till synes helt oförklarligt bara försvinner.

Kod

Så här deklarerar du en variabel:

Dim strName

Du kan deklarera flera variabler på samma rad:

Dim strName, strAddress, strCity

Göran Andersson