VBScript funkciók és eljárások példával

⚡ Okos összefoglaló

A VBScript függvények és eljárások újrafelhasználható blokkokba rendezik a kódot. Egy Sub eljárás érték visszaadása nélkül futtat utasításokat, míg egy Function eljárás a függvény nevéhez rendelve ad vissza értéket, az argumentumok pedig ByRef vagy ByVal használatával kerülnek átadásra.

  • 🧱 Code Újrafelhasználás: Az eljárások modularizálják a kódot, így könnyebb írni, hibakeresni és karbantartani nagyméretű szkripteken keresztül.
  • 📤 Aleljárás: Egy Sub egy utasításblokkot futtat a Sub és az End Sub között, de nem ad vissza értéket.
  • 📥 Funkció Eljárás: Egy függvény egy értéket úgy ad vissza, hogy azt a függvény nevéhez rendeli a Function és az End Function között.
  • 📞 Hívás: Használd a call kulcsszót egy Sub futtatásához, és használd egy függvény nevét egy kifejezésben az eredmény megszerzéséhez.
  • 🔁 ByRef vs ByVal: A ByRef függvény lehetővé teszi, hogy a változtatások a hívás után is megmaradjanak; a ByVal függvény egy másolaton dolgozik, így a változtatások nem maradnak meg.
  • 🇧🇷 Alapértelmezett átadás: A VBScript alapértelmezés szerint hivatkozással adja át az argumentumokat, kivéve, ha a ByVal értéket adjuk meg.

VBScript függvények és eljárások

VBScript eljárások

A VBScript eljárásokat főként kódszervezésre és újrafelhasználásra használják. Mostanáig egyszerű példákat használtunk, mivel itt a VBScript tanulása a cél. De a valós világban a kód nem ilyen egyszerű. Ha valami hasznosat próbál megvalósítani, a kód bonyolultabbá válhat. Lehet, hogy több száz sor húzódik sok oldalon.

Ha nem rendezi megfelelően a kódot, akkor a kódolás, hibakeresés és a kód kezelésének teljes folyamata nagyon bonyolulttá válik. Tehát gondosan kell rendszerezni vagy modularizálni a kódot, hogy a kód könnyen kezelhető legyen.

Sőt, tegyük fel, hogy van egy utasításkészlete, amely egy adott műveletet hajt végre. Azt szeretné, ha ugyanaz a művelet többször megismétlődne. Akkor miért kell újra és újra ugyanazt a kódot írni? Hatékony technikák használatával újrafelhasználhatóvá teheti kódját. Ez segít a fejlesztőknek a kód gyönyörű rendezésében, a tesztelőknek pedig a hibák egyszerű azonosításában. Röviden, a kód modularizálása és újrafelhasználása nagyon fontos a kód hatékonyabbá, megbízhatóbbá és könnyebben karbantarthatóbbá tételéhez. Itt jönnek képbe az eljárások.

Eljárások típusai a VBScriptben

Az eljárás egy kódblokk, amely ideális esetben egyetlen funkciót hajt végre. Egy bemenetet feldolgozó vagy fájlt kezelő kódblokk jó példa a függvényre. Kétféle eljárás létezik vbscript.

  1. Aleljárás: Az aleljárás nem ad vissza értéket.
  2. Függvényeljárás: A függvényeljárást akkor használjuk, ha értéket szeretnénk visszaadni.

Aleljárások

Ha utasítássorozatot szeretne végrehajtani anélkül, hogy bármilyen értéket adna vissza, használhat aleljárásokat.

Az aleljárások Sub és End Sub utasításokkal kezdődnek és végződnek. Az aleljárások vehetnek fel argumentumokat, de nem adhatnak vissza értéket. Az aleljárások fogadhatnak, vagy nem.

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

Ennek a kódnak a megírása nem ad ki semmit. Itt egy outputMessage nevű aleljárást hozott létre. Ezután fel kell hívnia.

hívás outputMessage()

Kombinálja mindkét kódkészletet belül tag like this.

<script type="text/vbscript">

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

Ennek a kódnak a kimenete lesz

Aleljárások

VBScript függvények

Ha utasítássorozatot szeretne végrehajtani, és egy értéket szeretne visszaadni, akkor függvényeljárásokat kell használnia, más néven függvény.

A függvényeljárások a Function és End Function utasításokkal kezdődnek és végződnek.

Egy függvényeljárás fogadhat bemenetet vagy nem.

A függvényeljárások úgy adnak vissza értéket, hogy az értéket a nevéhez rendelik.

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

Ennek a kódnak a kimenete lesz

VBScript függvények

ByRef és ByVal paraméterek

A VBScript argumentumokat hivatkozás vagy érték alapján adhatja át az eljárásoknak.

Ha nem ad meg semmit az eljárás meghívásakor, akkor az argumentum/argumentumok alapértelmezés szerint hivatkozással kerülnek átadásra.

Ha az argumentumokban végrehajtott módosítások az eljárás meghívása után is fennmaradnak, akkor a VBScript argumentumokat hivatkozással kell átadnia.

Ha egy argumentumot értékkel adunk át, akkor a meghívott eljárás által végrehajtott változtatások a változó ne tartsa fenn az eljárás kihívása után.

A ByRef és ByVal kulcsszavak az argumentumok hivatkozás és érték szerinti átadására szolgálnak.

A különbség megértéséhez először futtassa az alábbi kódot, és nézze meg a kimenetet.

Step 1) Másolja be a kódot a szerkesztőbe

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

Step 2) a kimenet 6.

Step 3) A függvény returnResult(ByRef érték) módosítása Function returnResult(ByVal érték) értékre

Step 4) Most a kimeneted 5 lesz.

GYIK

Az eljárás befejezése előtt közvetlenül az Exit Sub paranccsal kiléphetsz egy Sub függvényen belül. A végrehajtás ezután visszatér a meghívott sorhoz.

Ha a call kulcsszót használod, akkor az argumentumokat zárójelek közé kell tenni. Ha kihagyod a call kulcsszót, ne használj zárójeleket több argumentum körül. Ennek elkövetése gyakori VBScript szintaktikai hiba.

Igen. Egy VBScript al- vagy függvény meghívhatja önmagát, ezt rekurziónak nevezzük. Mindig adj meg egy alapfeltételt, amely leállítja a hívásokat, különben a szkript addig fog ciklusba kerülni, amíg el nem fogy a veremterülete.

Igen. A mesterséges intelligencia képes felismerni az ismétlődő utasításokat, pl.tracHelyezd el őket egy Sub-ben vagy Functionben a megfelelő paraméterekkel, és frissítsd a hívásokat. Ezáltal a szkriptek rövidebbek és könnyebben karbantarthatók.

Igen. A mesterséges intelligencia képes rá tracMegmutatja, hogyan változik egy érték a ByRef és a ByVal függvények használatával, megjeleníti mindkét függvény kimenetét, és javaslatot tesz a használatra attól függően, hogy a hívónak látnia kell-e a változást.

Foglald össze ezt a bejegyzést a következőképpen: