VBScript-funksjoner og -prosedyrer med eksempel

โšก Smart oppsummering

VBScript-funksjoner og -prosedyrer organiserer kode i gjenbrukbare blokker. En subprosedyre kjรธrer setninger uten รฅ returnere en verdi, mens en funksjonsprosedyre returnerer en verdi ved รฅ tilordne den til funksjonsnavnet, og argumenter sendes ved hjelp av ByRef eller ByVal.

  • ๐Ÿงฑ Code Gjenbruk: Prosedyrer modulariserer kode slik at det er enklere รฅ skrive, feilsรธke og vedlikeholde pรฅ tvers av store skript.
  • ๐Ÿ“ค Delprosedyre: En Sub kjรธrer en blokk med setninger mellom Sub og End Sub, men returnerer ikke en verdi.
  • ๐Ÿ“ฅ Funksjonsprosedyre: En funksjon returnerer en verdi ved รฅ tilordne den til funksjonsnavnet mellom Funksjon og Sluttfunksjon.
  • ๐Ÿ“ž Ringer: Bruk call-nรธkkelordet til รฅ kjรธre en Sub, og bruk navnet pรฅ en funksjon i et uttrykk for รฅ fรฅ resultatet.
  • ๐Ÿ” ByRef vs. ByVal: ByRef lar endringer beholdes etter kallet; ByVal jobber pรฅ en kopi, slik at endringer ikke beholdes.
  • โš™๏ธ Standard bestรฅtt: VBScript sender argumenter via referanse som standard med mindre du angir ByVal.

VBScript-funksjoner og prosedyrer

VBScript-prosedyrer

VBScript-prosedyrer brukes hovedsakelig for kodeorganisering og gjenbruk. Vi har brukt enkle eksempler til nรฅ da formรฅlet her er รฅ lรฆre VBScript. Men i virkelige scenarier er ikke koden sรฅ enkel som det. Nรฅr du prรธver รฅ implementere noe som er nyttig, kan koden bli mer kompleks. Det kan vรฆre hundrevis av linjer som strekker seg over mange sider.

Hvis du ikke organiserer koden riktig, vil hele prosessen med koding, feilsรธking og administrasjon av koden bli veldig kompleks. Sรฅ du bรธr organisere eller modularisere koden nรธye slik at koden din blir lett hรฅndterbar.

Anta dessuten at du har et sett med utsagn som utfรธrer en bestemt handling. Du vil at den samme handlingen skal gjentas flere ganger. Sรฅ hvorfor skal du skrive den samme koden igjen og igjen? Ved รฅ bruke effektive teknikker kan du gjรธre koden gjenbrukbar. Dette vil hjelpe utviklerne til รฅ organisere koden vakkert og testerne til รฅ identifisere feil enkelt. Kort sagt, kodemodularisering og gjenbruk er svรฆrt viktig for รฅ gjรธre koden kraftigere, pรฅliteligere og enklere รฅ vedlikeholde. Her kommer prosedyrer inn i bildet.

Typer prosedyrer i VBScript

En prosedyre er en kodeblokk som ideelt sett utfรธrer en enkelt funksjon. En kodeblokk som behandler en inndata eller hรฅndterer en fil er et godt eksempel pรฅ en funksjon. Det er to typer prosedyrer i VBScript.

  1. Underprosedyre: Underprosedyren returnerer ikke en verdi.
  2. Funksjonsprosedyre: Funksjonsprosedyren brukes hvis du รธnsker รฅ returnere en verdi.

Underprosedyrer

Hvis du รธnsker รฅ utfรธre en serie setninger uten รฅ returnere noen verdi, kan du bruke underprosedyrer.

Underprosedyrer starter og slutter med henholdsvis under- og sluttundersetninger. Underprosedyrer kan ta argumenter, men kan ikke returnere en verdi. Underprosedyrer kan ta innspill eller ikke.

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

Bare det รฅ skrive denne koden vil ikke sende ut noe. Her har du laget en underprosedyre kalt outputMessage. Deretter mรฅ du ringe det.

anrop outputMessage()

Kombiner begge disse settene med koder inni tag like this.

<script type="text/vbscript">

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

Utgangen av denne koden vil vรฆre

Underprosedyrer

VBScript-funksjoner

Hvis du vil utfรธre en serie setninger og returnere en verdi, mรฅ du bruke funksjonsprosedyrer, vanligvis kjent som funksjon.

Funksjonsprosedyrer starter og slutter med henholdsvis funksjon og sluttfunksjon.

En funksjonsprosedyre kan ta innspill eller ikke.

Funksjonsprosedyrer returnerer en verdi ved รฅ tilordne verdien til navnet.

<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>

Utgangen av denne koden vil vรฆre

VBScript-funksjoner

ByRef og ByVal parametere

Du kan sende VBScript-argumenter til prosedyrene ved referanse eller etter verdi.

Hvis du ikke spesifiserer noe nรฅr du kaller en prosedyre, sendes argumentet/argumentene som referanse som standard.

Hvis endringene som er gjort i argumentene vedvarer selv etter at prosedyren er kalt, mรฅ du sende VBScript-argumentene ved referanse.

Nรฅr et argument sendes av verdi, vil eventuelle endringer som den kalte prosedyren gjรธr i verdien av variabel ikke vedvare etter at prosedyren er kalt.

Nรธkkelordene ByRef og ByVal brukes til รฅ sende argumenter ved henholdsvis referanse og verdi.

For รฅ forstรฅ forskjellen, kjรธr fรธrst koden nedenfor og se utdataene.

Trinn 1) Kopier koden til redigeringsprogrammet ditt

<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>

Trinn 2) utgangen er 6.

Trinn 3) Endre funksjon returnResult(ByRef-verdi) til Function returnResult(ByVal-verdi)

Trinn 4) Nรฅ vil utgangen din vรฆre 5.

Spรธrsmรฅl og svar

Bruk Exit Sub inside a Sub, eller Exit Function inside a Function, for รฅ avslutte prosedyren rett fรธr slutten. Utfรธrelsen gรฅr deretter tilbake til linjen som kalte den.

Hvis du bruker nรธkkelordet call, bryt argumentene i parenteser. Hvis du utelater call, mรฅ du ikke bruke parenteser rundt flere argumenter. ร… gjรธre dette feil er en vanlig VBScript-syntaksfeil.

Ja. En VBScript-underfunksjon eller -funksjon kan kalle seg selv, noe som kalles rekursjon. Inkluder alltid en basisbetingelse som stopper kallene, ellers vil skriptet kjรธre i lรธkker til det gรฅr tom for stabelplass.

Ja. AI kan oppdage dupliserte utsagn, f.eks.tracsett dem inn i en underfunksjon eller funksjon med de riktige parameterne, og oppdater kallene. Dette gjรธr skript kortere og enklere รฅ vedlikeholde.

Ja. AI kan trace hvordan en verdi endres med ByRef versus ByVal, vis utdataene for hver, og anbefal hvilken som skal brukes basert pรฅ om den som kaller skal se endringen.

Oppsummer dette innlegget med: