Λειτουργίες & Διαδικασίες VBScript με Παράδειγμα

⚡ Έξυπνη Σύνοψη

Οι συναρτήσεις και οι διαδικασίες VBScript οργανώνουν τον κώδικα σε επαναχρησιμοποιήσιμα μπλοκ. Μια διαδικασία Sub εκτελεί εντολές χωρίς να επιστρέφει τιμή, ενώ μια διαδικασία Function επιστρέφει μια τιμή αντιστοιχίζοντάς την στο όνομα της συνάρτησης και τα ορίσματα μεταβιβάζονται χρησιμοποιώντας ByRef ή ByVal.

  • 🧱 Code Επαναχρησιμοποίηση: Οι διαδικασίες καθορίζουν την αρθρωτή δομή του κώδικα, ώστε να είναι ευκολότερη η σύνταξη, ο εντοπισμός σφαλμάτων και η συντήρηση σε μεγάλα σενάρια.
  • 📤 Υποδιαδικασία: Ένα Sub εκτελεί ένα μπλοκ εντολών μεταξύ του Sub και του End Sub αλλά δεν επιστρέφει τιμή.
  • 📥 Διαδικασία Λειτουργίας: Μια συνάρτηση επιστρέφει μια τιμή αντιστοιχίζοντάς την στο όνομα της συνάρτησης μεταξύ της Συνάρτησης και της Τελικής Συνάρτησης.
  • 📞 Κλήση: Χρησιμοποιήστε τη λέξη-κλειδί call για να εκτελέσετε μια Sub και χρησιμοποιήστε το όνομα μιας Συνάρτησης σε μια παράσταση για να λάβετε το αποτέλεσμά της.
  • 🔁 ByRef εναντίον ByVal: Το ByRef επιτρέπει στις αλλαγές να διατηρούνται μετά την κλήση. Το ByVal λειτουργεί σε ένα αντίγραφο, επομένως οι αλλαγές δεν διατηρούνται.
  • ⚙️ Προεπιλεγμένη πάσα: Η VBScript μεταβιβάζει ορίσματα με αναφορά από προεπιλογή, εκτός εάν καθορίσετε ByVal.

Συναρτήσεις και Διαδικασίες VBScript

Διαδικασίες VBScript

Οι διαδικασίες VBScript χρησιμοποιούνται κυρίως για οργάνωση και επαναχρησιμοποίηση κώδικα. Χρησιμοποιούμε απλά παραδείγματα μέχρι τώρα καθώς εδώ ο σκοπός είναι η εκμάθηση VBScript. Αλλά σε πραγματικό σενάριο, ο κώδικας δεν είναι τόσο απλός. Όταν προσπαθείτε να εφαρμόσετε κάτι που είναι χρήσιμο, ο κώδικας μπορεί να γίνει πιο περίπλοκος. Θα μπορούσαν να υπάρχουν εκατοντάδες γραμμές που εκτείνονται σε πολλές σελίδες.

Εάν δεν οργανώσετε σωστά τον κώδικα, η όλη διαδικασία κωδικοποίησης, εντοπισμού σφαλμάτων και διαχείρισης του κώδικα θα γίνει πραγματικά πολύπλοκη. Επομένως, θα πρέπει να οργανώσετε ή να διαμορφώσετε τον κώδικα προσεκτικά, ώστε ο κώδικάς σας να γίνεται εύκολα διαχειρίσιμος.

Επιπλέον, ας υποθέσουμε ότι έχετε ένα σύνολο εντολών που εκτελεί μια συγκεκριμένη ενέργεια. Θέλετε η ίδια ενέργεια να επαναλαμβάνεται πολλές φορές. Τότε, γιατί πρέπει να γράφετε τον ίδιο κωδικό ξανά και ξανά; Χρησιμοποιώντας αποτελεσματικές τεχνικές, μπορείτε να κάνετε τον κώδικά σας επαναχρησιμοποιήσιμο. Αυτό θα βοηθήσει τους προγραμματιστές να οργανώσουν όμορφα τον κώδικα και τους δοκιμαστές να εντοπίσουν εύκολα σφάλματα. Εν ολίγοις, η σπονδυλοποίηση και η επαναχρησιμοποίηση κώδικα είναι πολύ σημαντική για να γίνει ο κώδικας πιο ισχυρός, αξιόπιστος και ευκολότερος στη συντήρηση. Εδώ έρχονται οι διαδικασίες σε μια εικόνα.

Τύποι διαδικασιών σε VBScript

Μια διαδικασία είναι ένα μπλοκ κώδικα που εκτελεί ιδανικά μια μεμονωμένη λειτουργία. Ένα μπλοκ κώδικα που επεξεργάζεται μια είσοδο ή χειρίζεται ένα αρχείο είναι ένα καλό παράδειγμα συνάρτησης. Υπάρχουν δύο τύποι διαδικασιών σε Vbscript.

  1. Υποδιαδικασία: Η δευτερεύουσα διαδικασία δεν επιστρέφει τιμή.
  2. Διαδικασία συνάρτησης: Η διαδικασία συνάρτησης χρησιμοποιείται εάν θέλετε να επιστρέψετε μια τιμή.

Υποδιαδικασίες

Εάν θέλετε να εκτελέσετε μια σειρά από εντολές χωρίς να επιστρέψετε καμία τιμή, τότε μπορείτε να χρησιμοποιήσετε υποδιαδικασίες.

Οι υποδιαδικασίες ξεκινούν και τελειώνουν με προτάσεις Sub και End Sub αντίστοιχα. Οι δευτερεύουσες διαδικασίες μπορούν να λάβουν ορίσματα, αλλά δεν μπορούν να επιστρέψουν μια τιμή. Οι δευτερεύουσες διαδικασίες ενδέχεται να λάβουν ή όχι στοιχεία.

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

Απλά γράφοντας αυτόν τον κώδικα δεν θα βγει τίποτα. Εδώ έχετε δημιουργήσει μια διαδικασία Sub με το όνομα outputMessage. Στη συνέχεια, πρέπει να το καλέσετε.

call outputMessage()

Συνδυάστε και τα δύο αυτά σετ κωδικών μέσα tag like this.

<script type="text/vbscript">

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

Η έξοδος αυτού του κώδικα θα είναι

Υποδιαδικασίες

Λειτουργίες VBScript

Εάν θέλετε να εκτελέσετε μια σειρά από εντολές και να επιστρέψετε μια τιμή, τότε πρέπει να χρησιμοποιήσετε διαδικασίες συνάρτησης, κοινώς γνωστές ως συνάρτηση.

Οι διαδικασίες συνάρτησης ξεκινούν και τελειώνουν με εντολές Function και End Function αντίστοιχα.

Μια διαδικασία συνάρτησης μπορεί να λάβει ή όχι είσοδο.

Οι διαδικασίες συνάρτησης επιστρέφουν μια τιμή εκχωρώντας την τιμή στο όνομά της.

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

Η έξοδος αυτού του κώδικα θα είναι

Λειτουργίες VBScript

Παράμετροι ByRef και ByVal

Μπορείτε να μεταβιβάσετε ορίσματα VBScript στις διαδικασίες με αναφορά ή με τιμή.

Εάν δεν προσδιορίζετε τίποτα όταν καλείτε μια διαδικασία, τότε το όρισμα/ορίσματα μεταβιβάζονται ως αναφορά από προεπιλογή.

Εάν οι αλλαγές που έγιναν στα ορίσματα παραμένουν ακόμη και μετά την κλήση της διαδικασίας, τότε πρέπει να μεταβιβάσετε τα ορίσματα VBScript με αναφορά.

Όταν ένα όρισμα μεταβιβάζεται με τιμή, τυχόν αλλαγές που κάνει η καλούμενη διαδικασία στην τιμή του μεταβλητή μην επιμείνετε μετά την κλήση της διαδικασίας.

Οι λέξεις-κλειδιά ByRef και ByVal χρησιμοποιούνται για τη μεταβίβαση ορισμάτων με αναφορά και με τιμή αντίστοιχα.

Για να κατανοήσετε τη διαφορά, πρώτα εκτελέστε τον παρακάτω κώδικα και δείτε την έξοδο.

Βήμα 1) Αντιγράψτε τον κώδικα στον επεξεργαστή σας

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

Βήμα 2) η έξοδος είναι 6.

Βήμα 3) Αλλάξτε τη συνάρτηση returnResult (τιμή ByRef) σε Function returnResult (τιμή ByVal)

Βήμα 4) Τώρα η έξοδος σας θα είναι 5.

Συχνές Ερωτήσεις

Χρησιμοποιήστε την εντολή Exit Sub μέσα σε μια Sub ή την εντολή Exit Function μέσα σε μια Function για να εγκαταλείψετε τη διαδικασία αμέσως πριν από το τέλος. Η εκτέλεση, στη συνέχεια, επιστρέφει στη γραμμή που την κάλεσε.

Εάν χρησιμοποιείτε τη λέξη-κλειδί call, τυλίξτε τα ορίσματα σε παρενθέσεις. Εάν παραλείψετε τη λέξη-κλειδί call, μην χρησιμοποιείτε παρενθέσεις γύρω από πολλαπλά ορίσματα. Η λανθασμένη χρήση αυτού του ορίσματος είναι ένα συνηθισμένο σφάλμα σύνταξης VBScript.

Ναι. Ένα VBScript Sub ή Function μπορεί να καλέσει τον εαυτό του, κάτι που ονομάζεται αναδρομή. Να συμπεριλαμβάνετε πάντα μια βασική συνθήκη που σταματά τις κλήσεις, διαφορετικά το σενάριο θα επαναλαμβάνεται μέχρι να εξαντληθεί ο χώρος στοίβας του.

Ναι. Η τεχνητή νοημοσύνη μπορεί να εντοπίσει διπλότυπες δηλώσεις, π.χ.tracΜετατρέψτε τα σε μια Sub ή Function με τις σωστές παραμέτρους και ενημερώστε τις κλήσεις. Αυτό κάνει τα σενάρια πιο σύντομα και πιο εύκολα στη συντήρηση.

Ναι. Η Τεχνητή Νοημοσύνη μπορεί. tracπώς αλλάζει μια τιμή με το ByRef έναντι του ByVal, δείξτε την έξοδο για κάθε τιμή και προτείνετε ποια τιμή να χρησιμοποιήσετε με βάση το αν ο καλών θα πρέπει να δει την αλλαγή.

Συνοψίστε αυτήν την ανάρτηση με: