VBScripti funktsioonid ja protseduurid koos näitega

⚡ Nutikas kokkuvõte

VBScripti funktsioonid ja protseduurid korraldavad koodi korduvkasutatavateks plokkideks. Sub-protseduur käivitab laused väärtust tagastamata, samas kui Function-protseduur tagastab väärtuse, määrates selle funktsiooni nimele, ja argumendid edastatakse ByRef või ByVal abil.

  • 🧱 Code Taaskasuta: Protseduurid modulariseerivad koodi, nii et seda on suurte skriptide puhul lihtsam kirjutada, siluda ja hallata.
  • 📤 Alammenetlus: Sub käivitab lauseploki Sub ja End Sub vahel, kuid ei tagasta väärtust.
  • 📥 Funktsiooni protseduur: Funktsioon tagastab väärtuse, määrates selle funktsiooni nimele, mis asub „Funktsiooni” ja „Lõppfunktsiooni” vahel.
  • 📞 Helistamine: Sub-funktsiooni käivitamiseks kasutage märksõna „call“ ja funktsiooni tulemuse saamiseks kasutage avaldises funktsiooni nime.
  • 🔁 ByRef vs ByVal: ByRef laseb muudatustel pärast kutset säilida; ByVal töötab koopiaga, seega muudatused ei jää püsima.
  • ⚙️ Vaikimisi läbimine: VBScript edastab argumendid vaikimisi viitena, kui te pole määranud ByVal väärtust.

VBScripti funktsioonid ja protseduurid

VBScripti protseduurid

VBScripti protseduure kasutatakse peamiselt koodi korrastamiseks ja taaskasutamiseks. Oleme siiani kasutanud lihtsaid näiteid, kuna siin on eesmärk VBScripti õppimine. Kuid reaalse maailma stsenaariumi korral pole kood nii lihtne. Kui proovite rakendada midagi kasulikku, võib kood muutuda keerulisemaks. Paljudel lehtedel võib olla sadu ridu.

Kui te ei korralda koodi õigesti, muutub kogu koodi kodeerimise, silumise ja haldamise protsess tõeliselt keeruliseks. Seega peaksite koodi hoolikalt korraldama või moduleerima, et teie kood muutuks hõlpsasti hallatavaks.

Veelgi enam, oletame, et teil on lausete komplekt, mis sooritab konkreetse toimingu. Soovite, et sama toimingut korrataks mitu korda. Miks peaksite siis ikka ja jälle sama koodi kirjutama? Tõhusate tehnikate abil saate muuta oma koodi korduvkasutatavaks. See aitab arendajatel koodi kaunilt korraldada ja testijatel vigu hõlpsalt tuvastada. Lühidalt öeldes on koodi modulariseerimine ja taaskasutus väga olulised, et muuta kood võimsamaks, töökindlamaks ja hõlpsamini hooldatavaks. Siin tulevad protseduurid pildile.

VBScripti protseduuride tüübid

Protseduur on koodiplokk, mis ideaalis täidab ühte funktsiooni. Funktsiooni hea näide on koodiplokk, mis töötleb sisendit või käsitleb faili. Selles on kahte tüüpi protseduure Vbscript.

  1. Alamprotseduur: alamprotseduur ei tagasta väärtust.
  2. Funktsiooniprotseduur: funktsiooni protseduuri kasutatakse siis, kui soovite väärtuse tagastada.

Alamprotseduurid

Kui soovite käivitada lausete seeriat väärtust tagastamata, võite kasutada alamprotseduure.

Alamprotseduurid algavad ja lõpevad vastavalt alam- ja lõpulausetega. Alamprotseduurid võivad võtta argumente, kuid ei saa väärtust tagastada. Alamprotseduurid võivad, kuid ei pruugi võtta sisendit.

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

Lihtsalt selle koodi kirjutamine ei anna midagi välja. Siin olete loonud alamprotseduuri nimega outputMessage. Järgmiseks peate sellele helistama.

helista väljundsõnum()

Kombineerige mõlemad need koodikomplektid sees tag like this.

<script type="text/vbscript">

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

Selle koodi väljund on

Alamprotseduurid

VBScripti funktsioonid

Kui soovite käivitada rida lauseid ja tagastada väärtuse, peate kasutama funktsiooniprotseduure, mida tavaliselt nimetatakse funktsiooniks.

Funktsiooniprotseduurid algavad ja lõpevad vastavalt lausetega Funktsioon ja Lõppfunktsioon.

Funktsiooniprotseduur võib, kuid ei pruugi võtta sisendit.

Funktsiooniprotseduurid tagastavad väärtuse, määrates väärtuse selle nimele.

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

Selle koodi väljund on

VBScripti funktsioonid

ByRef ja ByVal parameetrid

VBScripti argumendid saate protseduuridele edastada viite või väärtuse järgi.

Kui te protseduuri kutsumisel midagi ei määra, edastatakse argument/argumendid vaikimisi viitega.

Kui argumentides tehtud muudatused jäävad püsima ka pärast protseduuri kutsumist, peate VBScripti argumendid viitena edastama.

Kui argument edastatakse väärtuse järgi, siis kõik muudatused, mida kutsutud protseduur teeb väärtuses muutuja ärge jätkake pärast protseduuri kutsumist.

Märksõnu ByRef ja ByVal kasutatakse argumentide edastamiseks vastavalt viite ja väärtuse alusel.

Erinevuse mõistmiseks käivitage esmalt alltoodud kood ja vaadake väljundit.

Step 1) Kopeerige kood oma redaktorisse

<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) väljund on 6.

Step 3) Muutke funktsiooni returnResult(väärtus ByRef) väärtuseks Function returnResult(ByVal väärtus)

Step 4) Nüüd on teie väljund 5.

KKK

Protseduurist lahkumiseks vahetult enne lõppu kasutage käsku Exit Sub alamtoimingu sees või käsku Exit Function funktsiooni sees. Seejärel naaseb täitmine reale, millel see välja kutsuti.

Kui kasutate märksõna „call”, pange argumendid sulgudesse. Kui te „call” ära jätate, ärge kasutage mitme argumendi ümber sulgusid. Selle vale tegemine on tavaline VBScripti süntaksiviga.

Jah. VBScripti alam- või funktsioon saab iseennast kutsuda, mida nimetatakse rekursiooniks. Lisage alati baastingimus, mis peatab kutsumised, vastasel juhul skript tsüklib seni, kuni pinuruum otsa saab.

Jah. Tehisintellekt suudab tuvastada dubleeritud avaldusi, nttracTeisendage need õigete parameetritega alamüksuseks või funktsiooniks ja värskendage kõnesid. See muudab skriptid lühemaks ja hõlpsamini hallatavaks.

Jah. Tehisintellekt saab tracVaatame, kuidas väärtus muutub ByRef ja ByVal puhul, näitame mõlema väljundit ja soovitame, millist kasutada, lähtudes sellest, kas kutsuja peaks muutust nägema.

Võta see postitus kokku järgmiselt: