VBScript-funktioner og -procedurer med eksempel

⚡ Smart opsummering

VBScript-funktioner og -procedurer organiserer kode i genanvendelige blokke. En Sub-procedure kører sætninger uden at returnere en værdi, mens en Function-procedure returnerer en værdi ved at tildele den til funktionsnavnet, og argumenter sendes ved hjælp af ByRef eller ByVal.

  • 🧱 Code Genbruge: Procedurer modulariserer kode, så det er nemmere at skrive, fejlfinde og vedligeholde på tværs af store scripts.
  • 📤 Delprocedure: En Sub kører en blok af sætninger mellem Sub og End Sub, men returnerer ikke en værdi.
  • 📥 Funktionsprocedure: En funktion returnerer en værdi ved at tildele den til funktionsnavnet mellem Function og End Function.
  • 📞 Ringer: Brug nøgleordet call til at køre en Sub, og brug en funktions navn i et udtryk for at få dens resultat.
  • 🔁 ByRef vs. ByVal: ByRef lader ændringer bevares efter kaldet; ByVal arbejder på en kopi, så ændringerne ikke bevares.
  • 🇧🇷 Standardbeståelse: VBScript sender som standard argumenter via reference, medmindre du angiver ByVal.

VBScript-funktioner og -procedurer

VBScript-procedurer

VBScript-procedurer bruges hovedsageligt til kodeorganisering og genbrug. Vi har brugt simple eksempler indtil nu, da formålet her er at lære VBScript. Men i virkelighedens scenarier er koden ikke så enkel som det. Når du forsøger at implementere noget, der er nyttigt, kan koden blive mere kompleks. Der kan være hundredvis af linjer, der strækker sig over mange sider.

Hvis du ikke organiserer koden ordentligt, vil hele processen med kodning, fejlretning og styring af koden blive virkelig kompleks. Så du bør organisere eller modularisere koden omhyggeligt, så din kode bliver let overskuelig.

Antag desuden, at du har et sæt udsagn, der udfører en bestemt handling. Du ønsker, at den samme handling skal gentages flere gange. Så hvorfor skulle du skrive den samme kode igen og igen? Ved at bruge effektive teknikker kan du gøre din kode genbrugelig. Dette vil hjælpe udviklerne med at organisere koden smukt og testerne til nemt at identificere fejl. Kort sagt er kodemodularisering og genbrug meget vigtigt for at gøre koden mere kraftfuld, pålidelig og lettere at vedligeholde. Her kommer procedurer ind i billedet.

Typer af procedurer i VBScript

En procedure er en kodeblok, der ideelt set udfører en enkelt funktion. En kodeblok, der behandler et input eller håndterer en fil, er et godt eksempel på en funktion. Der er to typer procedurer i vbscript.

  1. Underprocedure: Underproceduren returnerer ikke en værdi.
  2. Funktionsprocedure: Funktionsproceduren bruges, hvis du ønsker at returnere en værdi.

Underprocedurer

Hvis du vil udføre en række udsagn uden at returnere nogen værdi, kan du bruge underprocedurer.

Underprocedurer starter og slutter med henholdsvis Sub- og End Sub-sætninger. Underprocedurer kan tage argumenter, men kan ikke returnere en værdi. Underprocedurer kan tage input eller ikke.

Sub outputMessage()
document.write("Welcome")
End Sub

Bare at skrive denne kode vil ikke udsende noget. Her har du oprettet en underprocedure med navnet outputMessage. Dernæst skal du ringe til det.

kald outputMessage()

Kombiner begge disse sæt koder indeni tag like this.

<script type="text/vbscript">

Sub outputMessage()
document.write("Welcome")
End Sub
call outputMessage()
</script>

Outputtet af denne kode vil være

Underprocedurer

VBScript funktioner

Hvis du vil udføre en række sætninger og returnere en værdi, skal du bruge funktionsprocedurer, almindeligvis kendt som funktion.

Funktionsprocedurer starter og slutter med henholdsvis funktions- og slutfunktionssætninger.

En funktionsprocedure tager muligvis input eller ikke.

Funktionsprocedurer returnerer en værdi ved at tildele værdien til dens navn.

<script type="text/vbscript">
Function findArea(radius)
   const pi=3.14
   area = pi*radius*radius
   findArea = area
End Function
document.write("The area of the circle when the radius is 20 is " & findArea(20) &"<br/>")
document.write("The area of the circle when the radius is 10 is " & findArea(10))

</script>

Outputtet af denne kode vil være

VBScript funktioner

ByRef og ByVal parametre

Du kan sende VBScript-argumenter til procedurerne ved reference eller værdi.

Hvis du ikke angiver noget, når du kalder en procedure, sendes argumentet/argumenterne som standard som reference.

Hvis ændringerne i argumenterne fortsætter, selv efter proceduren er kaldt, skal du videregive VBScript-argumenterne ved reference.

Når et argument sendes af værdien, vil alle ændringer, som den kaldte procedure foretager i værdien af variabel ikke fortsætte efter proceduren er kaldt.

Nøgleordene ByRef og ByVal bruges til at videregive argumenter ved henholdsvis reference og værdi.

For at forstå forskellen skal du først udføre nedenstående kode og se outputtet.

Trin 1) Kopier koden ind i din editor

<script type="text/vbscript">
Function returnResult(ByRef value)
   value = value +1
   returnResult = value
End Function
Dim x
x=5
call returnResult(x)
document.write(x)
</script>

Trin 2) outputtet er 6.

Trin 3) Skift funktion returnResult(ByRef værdi) til funktion returnResult(ByVal værdi)

Trin 4) Nu vil dit output være 5.

Ofte Stillede Spørgsmål

Brug "Afslut sub i en sub" eller "Afslut funktion i en funktion" for at afslutte proceduren umiddelbart før afslutningen. Udførelsen vender derefter tilbage til den linje, der kaldte den.

Hvis du bruger nøgleordet call, skal du ombryde argumenterne i parenteser. Hvis du udelader call, må du ikke bruge parenteser omkring flere argumenter. At gøre dette forkert er en almindelig VBScript-syntaksfejl.

Ja. En VBScript-underfunktion eller -funktion kan kalde sig selv, hvilket kaldes rekursion. Inkluder altid en basisbetingelse, der stopper kaldene, ellers vil scriptet loope, indtil det løber tør for stakplads.

Ja. AI kan finde duplikerede udsagn, f.eks.tracindsæt dem i en Sub eller Funktion med de rigtige parametre, og opdater kaldene. Dette gør scripts kortere og nemmere at vedligeholde.

Ja. AI kan trace hvordan en værdi ændrer sig med ByRef versus ByVal, vis outputtet for hver, og anbefal hvilken der skal bruges baseret på om den, der kalder, skal se ændringen.

Opsummer dette indlæg med: