VBScript-funktiot ja -menettelyt esimerkin kanssa

โšก ร„lykรคs yhteenveto

VBScript-funktiot ja -proseduurit jรคrjestรคvรคt koodin uudelleenkรคytettรคviksi lohkoiksi. Sub-proseduuri suorittaa lauseita palauttamatta arvoa, kun taas Function-proseduuri palauttaa arvon liittรคmรคllรค sen funktion nimeen ja argumentit vรคlitetรครคn ByRef- tai ByVal-arvojen avulla.

  • ๐Ÿงฑ Code Uudelleenkรคyttรถ: Proseduurit moduloivat koodia, joten sitรค on helpompi kirjoittaa, virheenkorjata ja yllรคpitรครค suurissa skripteissรค.
  • ๐Ÿ“ค Alimenettely: Sub-lauseke suorittaa lausekelohkon Sub- ja End Sub -lausekkeiden vรคlillรค, mutta ei palauta arvoa.
  • ๐Ÿ“ฅ Toimintomenettely: Funktio palauttaa arvon asettamalla sen funktion nimeen Funktio- ja Loppufunktio-osioiden vรคliin.
  • ๐Ÿ“ž Kutsumus: Kรคytรค call-avainsanaa suorittaaksesi Sub-funktion ja kรคytรค funktion nimeรค lausekkeessa saadaksesi sen tuloksen.
  • ๐Ÿ” ByRef vs. ByVal: ByRef-funktio sรคilyttรครค muutokset kutsun jรคlkeen; ByVal-funktio toimii kopiossa, joten muutokset eivรคt sรคily.
  • โš™๏ธ Oletusarvoinen hyvรคksyntรค: VBScript vรคlittรครค argumentit oletusarvoisesti viittauksena, ellet mรครคritรค ByVal-arvoa.

VBScript-funktiot ja -proseduurit

VBScript-menettelyt

VBScript-proseduureja kรคytetรครคn pรครคasiassa koodin jรคrjestรคmiseen ja uudelleenkรคyttรถรถn. Olemme kรคyttรคneet yksinkertaisia โ€‹โ€‹esimerkkejรค tรคhรคn asti, koska tรคssรค tarkoituksena on oppia VBScript. Mutta todellisessa tilanteessa koodi ei ole niin yksinkertainen. Kun yritรคt toteuttaa jotain hyรถdyllistรค, koodi saattaa muuttua monimutkaisemmaksi. Sivuilla voi olla satoja rivejรค.

Jos et jรคrjestรค koodia kunnolla, koko koodin koodaus-, virheenkorjaus- ja hallintaprosessista tulee todella monimutkainen. Joten sinun tulee jรคrjestรครค tai moduloida koodi huolellisesti, jotta koodistasi tulee helposti hallittavissa.

Lisรคksi oletetaan, ettรค sinulla on joukko lauseita, jotka suorittavat tietyn toiminnon. Haluat, ettรค sama toiminto toistetaan useita kertoja. Miksi sitten pitรคisi kirjoittaa sama koodi uudestaan โ€‹โ€‹ja uudestaan? Kรคyttรคmรคllรค tehokkaita tekniikoita voit tehdรค koodistasi uudelleen kรคytettรคvรคn. Tรคmรค auttaa kehittรคjiรค jรคrjestรคmรครคn koodin kauniisti ja testaajia tunnistamaan virheet helposti. Lyhyesti sanottuna koodin modularisointi ja uudelleenkรคyttรถ ovat erittรคin tรคrkeitรค, jotta koodista tulee tehokkaampi, luotettavampi ja helpompi yllรคpitรครค. Tรคssรค tulevat menettelyt kuvaan.

VBScriptin menettelytyypit

Proseduuri on koodilohko, joka ihannetapauksessa suorittaa yhden toiminnon. Koodilohko, joka kรคsittelee syรถtteen tai kรคsittelee tiedostoa, on hyvรค esimerkki funktiosta. Siinรค on kahdenlaisia โ€‹โ€‹menettelyjรค vbscript.

  1. Alimenettely: Alimenettely ei palauta arvoa.
  2. Funktiomenettely: Funktion menettelyรค kรคytetรครคn, jos haluat palauttaa arvon.

Alimenettelyt

Jos haluat suorittaa joukon lausekkeita palauttamatta mitรครคn arvoa, voit kรคyttรครค alitoimenpiteitรค.

Alimenettelyt alkavat ja pรครคttyvรคt Sub- ja End Sub -lauseisiin. Alimenettelyt voivat ottaa argumentteja, mutta eivรคt voi palauttaa arvoa. Alimenettelyt voivat ottaa syรถtteitรค tai olla ottamatta niitรค vastaan.

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

Pelkรคstรครคn tรคmรคn koodin kirjoittaminen ei tuota mitรครคn. Tรครคllรค olet luonut aliproseduurin nimeltรค outputMessage. Seuraavaksi sinun tรคytyy soittaa sille.

kutsu outputMessage()

Yhdistรค molemmat koodisarjat sisรคlle tag like this.

<script type="text/vbscript">

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

Tรคmรคn koodin tulos on

Alimenettelyt

VBScript-funktiot

Jos haluat suorittaa joukon lauseita ja palauttaa arvon, sinun on kรคytettรคvรค funktioproseduureja, jotka tunnetaan yleisesti nimellรค funktio.

Funktioproseduurit alkavat ja pรครคttyvรคt Function- ja End Function -kรคskyihin.

Toimintomenettely voi ottaa syรถtteen tai ei.

Funktiomenettelyt palauttavat arvon mรครคrittรคmรคllรค arvon sen nimeen.

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

Tรคmรคn koodin tulos on

VBScript-funktiot

ByRef ja ByVal -parametrit

Voit vรคlittรครค VBScript-argumentteja proseduureille viittauksen tai arvon perusteella.

Jos et mรครคritรค mitรครคn, kun kutsut proseduuria, argumentti/argumentit vรคlitetรครคn oletusarvoisesti viittauksella.

Jos argumentteihin tehdyt muutokset sรคilyvรคt myรถs proseduurin kutsumisen jรคlkeen, sinun on vรคlitettรคvรค VBScript-argumentit viittauksella.

Kun argumentti vรคlitetรครคn arvon mukaan, kutsutun proseduurin tekemรคt muutokset parametrin arvoon muuttuja รคlรค jatku toimenpiteen kutsumisen jรคlkeen.

Avainsanoja ByRef ja ByVal kรคytetรครคn vรคlittรคmรครคn argumentit viittauksen ja arvon perusteella.

Ymmรคrtรครคksesi eron, suorita ensin alla oleva koodi ja katso tulos.

Vaihe 1) Kopioi koodi editoriin

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

Vaihe 2) lรคhtรถ on 6.

Vaihe 3) Muuta Function returnResult(ByRef-arvo) arvoksi Function returnResult(ByVal-arvo)

Vaihe 4) Nyt tulostesi on 5.

UKK

Kรคytรค Exit Sub -komentoa Sub-komennon tai Exit Function -komennon sisรคllรค poistuaksesi proseduurista vรคlittรถmรคsti ennen sen loppua. Suoritus palaa sitten riville, jolla sitรค kutsuttiin.

Jos kรคytรคt call-avainsanaa, laita argumentit sulkeisiin. Jos call-avainsana jรคtetรครคn pois, รคlรค kรคytรค sulkeita useiden argumenttien ympรคrillรค. Tรคmรคn tekeminen vรครคrin on yleinen VBScript-syntaksivirhe.

Kyllรค. VBScript-alifunktio tai -funktio voi kutsua itseรครคn, tรคtรค kutsutaan rekursioksi. Sisรคllytรค aina perusehto, joka pysรคyttรครค kutsut, tai skripti toistaa itseรครคn, kunnes pinotila loppuu.

Kyllรค. Tekoรคly voi havaita pรครคllekkรคisiรค lauseita, esim.tracMuunna ne Sub- tai Function-tyyppiin oikeilla parametreilla ja pรคivitรค kutsut. Tรคmรค tekee skripteistรค lyhyempiรค ja helpompia yllรคpitรครค.

Kyllรค. Tekoรคly voi tracTarkastele, miten arvo muuttuu ByRef- ja ByVal-muuttujien avulla, nรคytรค kummankin tuloste ja suosittele kรคytettรคvรครค menetelmรครค sen perusteella, pitรคisikรถ kutsujan nรคhdรค muutos.

Tiivistรค tรคmรค viesti seuraavasti: