Funcții și proceduri VBScript cu exemplu

⚡ Rezumat inteligent

Funcțiile și procedurile VBScript organizează codul în blocuri reutilizabile. O procedură Sub execută instrucțiuni fără a returna o valoare, în timp ce o procedură Function returnează o valoare atribuindu-i-se numelui funcției, iar argumentele sunt transmise folosind ByRef sau ByVal.

  • 🧱 Code Reutilizare: Procedurile modularizează codul, astfel încât să fie mai ușor de scris, depanat și întreținut în scripturi mari.
  • 📤 Subprocedură: Un Sub rulează un bloc de instrucțiuni între Sub și End Sub, dar nu returnează o valoare.
  • 📥 Procedura funcției: O funcție returnează o valoare prin atribuirea acesteia numelui funcției între Funcție și Funcția de sfârșit.
  • 📞 Apelare: Folosește cuvântul cheie call pentru a executa o subordonare și folosește numele unei funcții într-o expresie pentru a-i obține rezultatul.
  • 🔁 ByRef vs ByVal: ByRef permite modificărilor să persiste după apel; ByVal lucrează pe o copie, deci modificările nu persistă.
  • ⚙️ Trecere implicită: VBScript transmite argumentele prin referință în mod implicit, cu excepția cazului în care specificați ByVal.

Funcții și proceduri VBScript

Proceduri VBScript

Procedurile VBScript sunt utilizate în principal pentru organizarea și reutilizarea codului. Am folosit exemple simple până acum, deoarece aici scopul este de a învăța VBScript. Dar în scenariul real, codul nu este atât de simplu. Când încercați să implementați ceva util, codul poate deveni mai complex. Ar putea exista sute de linii care se întind pe mai multe pagini.

Dacă nu organizați corect codul, întregul proces de codare, depanare și gestionare a codului va deveni cu adevărat complex. Deci, ar trebui să organizați sau să modularizați codul cu atenție, astfel încât codul să devină ușor de gestionat.

Mai mult, să presupunem că aveți un set de instrucțiuni care efectuează o anumită acțiune. Vrei ca aceeași acțiune să fie repetată de mai multe ori. Atunci, de ce ar trebui să scrieți același cod din nou și din nou? Folosind tehnici eficiente, vă puteți face codul reutilizabil. Acest lucru îi va ajuta pe dezvoltatori să organizeze frumos codul și pe testeri să identifice cu ușurință erorile. Pe scurt, modularizarea și reutilizarea codului este foarte importantă pentru a face codul mai puternic, mai fiabil și mai ușor de întreținut. Iată procedurile într-o imagine.

Tipuri de proceduri în VBScript

O procedură este un bloc de cod care în mod ideal îndeplinește o singură funcție. Un bloc de cod care procesează o intrare sau gestionează un fișier este un bun exemplu de funcție. Există două tipuri de proceduri în vbscript.

  1. Subprocedura: Subprocedura nu returnează o valoare.
  2. Procedura funcției: Procedura funcției este utilizată dacă doriți să returnați o valoare.

Subproceduri

Dacă doriți să executați o serie de instrucțiuni fără a returna nicio valoare, atunci puteți utiliza subproceduri.

Subprocedurile încep și se termină cu instrucțiuni Sub și, respectiv, End Sub. Subprocedurile pot lua argumente, dar nu pot returna o valoare. Subprocedurile pot primi sau nu input.

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

Doar scrierea acestui cod nu va scoate nimic. Aici ați creat o procedură Sub numită outputMessage. Apoi, trebuie să-l suni.

apelați outputMessage()

Combinați ambele seturi de coduri în interior tag like this.

<script type="text/vbscript">

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

Ieșirea acestui cod va fi

Subproceduri

Funcții VBScript

Dacă doriți să executați o serie de instrucțiuni și să returnați o valoare, atunci trebuie să utilizați proceduri de funcție, cunoscute în mod obișnuit sub numele de funcție.

Procedurile de funcționare încep și se termină cu instrucțiuni Function și, respectiv, End Function.

O procedură de funcție poate sau nu să preia intrare.

Procedurile funcției returnează o valoare prin atribuirea valorii numelui acesteia.

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

Ieșirea acestui cod va fi

Funcții VBScript

Parametrii ByRef și ByVal

Puteți transmite argumente VBScript procedurilor prin referință sau după valoare.

Dacă nu specificați nimic atunci când apelați o procedură, atunci argumentul/argumentele sunt transmise implicit prin referință.

Dacă modificările aduse argumentelor persistă chiar și după apelarea procedurii, atunci trebuie să treceți argumentele VBScript prin referință.

Atunci când un argument este transmis după valoare, orice modificare pe care procedura apelată le aduce valorii lui variabil nu persistă după apelarea procedurii.

Cuvintele cheie ByRef și ByVal sunt folosite pentru a transmite argumente prin referință și, respectiv, după valoare.

Pentru a înțelege diferența, mai întâi, executați codul de mai jos și vedeți rezultatul.

Pas 1) Copiați codul în editorul dvs

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

Pas 2) ieșirea este 6.

Pas 3) Schimbați Funcția returnResult(ByRef value) în Function returnResult(ByVal value)

Pas 4) Acum rezultatul dvs. va fi 5.

Întrebări frecvente

Folosiți Exit Sub în interiorul unei sub-comenzi sau Exit Function în interiorul unei funcții pentru a părăsi procedura imediat înainte de sfârșit. Execuția revine apoi la linia care a apelat-o.

Dacă folosiți cuvântul cheie call, încadrați argumentele între paranteze. Dacă omiteți cuvântul cheie call, nu folosiți paranteze în jurul mai multor argumente. Greșeala acestei erori este o eroare de sintaxă VBScript frecventă.

Da. O subfuncție sau o funcție VBScript se poate apela singură, ceea ce se numește recursiune. Includeți întotdeauna o condiție de bază care oprește apelurile, altfel scriptul va repeta până când epuizează spațiul din stivă.

Da. Inteligența artificială poate detecta declarații duplicate, de ex.tracIntroduceți-le într-o Sub sau Function cu parametrii corecți și actualizați apelurile. Acest lucru face ca scripturile să fie mai scurte și mai ușor de întreținut.

Da. IA poate tracafișează cum se modifică o valoare cu ByRef versus ByVal, arată rezultatul pentru fiecare și recomandă pe care să o utilizeze în funcție de dacă apelantul ar trebui să vadă modificarea.

Rezumați această postare cu: