Microsoft® Visual Basic® Scripting Edition
Η Function

 


 


Περιγραφή
 
 

Δηλώνει το όνομα τα ορίσματα και τον κώδικα που σχηματίζουν τον κορμό μιας διαδικασίας Function.
 
 

Σύνταξη
 

        [Public | Private] Function name [(arglist)]

                [statements]

                [name = expression]

        [Exit Function]

                [statements]

                [name = expression]

        End Function
 
 

Η σύνταξη της δήλωσης Function αποτελείται από τα παρακάτω μέρη :
 
 
 
 
ΜΕΡΟΣ ΠΕΡΙΓΡΑΦΗ
Public Δείχνει ότι η διαδικασία Function είναι προσιτή σε όλες τις διαδικασίες σε όλα τα κείμενα.
Private Δείχνει ότι η διαδικασία Function είναι προσιτή μόνο σ’ εκείνες τις διαδικασίες στο κείμενο μέσα στο οποίο έχει δηλωθεί.
name Όνομα της Function. Ακολουθεί τους ήδη υπάρχοντες κανόνες ονομασίας μιας μεταβλητής.
arglist Μια λίστα από μεταβλητές που αναπαριστά ορίσματα τα οποία έχουν περάσει στη διαδικασία Function από τη στιγμή που αυτή κλήθηκε. Πολλές μεταβλητές μαζί διαχωρίζονται μεταξύ τους με κόμματα.
statements Οποιαδήποτε ομάδα από δηλώσεις που είναι έτοιμες να εκτελεστούν μέσα στον κορμό της διαδικασίας Function.
expression Επιστρέφει τη τιμή της Function.

Το όρισμα arglist αποτελείται από τα παρακάτω μέρη και έχει την ακόλουθη σύνταξη :
 
 

[ByVal | ByRef] varname[( )]
 
 
 
 
 
 
ΜΕΡΟΣ ΠΕΡΙΓΡΑΦΗ
ByVal Δείχνει ότι το όρισμα περνάει μόνο με τιμή.
ByRef Δείχνει ότι το όρισμα περνάει μόνο με αναφορά.
Varname Όνομα της μεταβλητής που αναπαριστά το όρισμα. Ακολουθεί τους ήδη υπάρχοντες κανόνες ονομασίας μιας μεταβλητής.

Σχόλια
 
 

Αν δε καθορίζονται σαφώς με τη χρήση είτε της Public είτε της Private, οι διαδικασίες έχουν κοινή πρόσβαση πράγμα το οποίο σημαίνει ότι είναι ορατές σε όλες τις διαδικασίες που βρίσκονται μέσα στο κείμενό σας. Η τιμή των τοπικών μεταβλητών μέσα σε μια Function δε διατηρείται κατά τη διάρκεια που καλείται η διαδικασία.

Ολόκληρος ο εκτελέσιμος κώδικας πρέπει να περιέχεται μέσα στις διαδικασίες. Δε μπορείτε να προσδιορίσετε, καθορίσετε μια διαδικασία Function μέσα σε μια άλλη διαδικασία Function ή Sub.
 
 

Η δήλωση Exit Function προκαλεί αυτόματη έξοδο από τη διαδικασία Function. Η εκτέλεση του προγράμματος συνεχίζεται με τη δήλωση που ακολουθεί τη δήλωση που κάλεσε τη διαδικασία Function. Μπορεί να εμφανιστεί οποιοσδήποτε αριθμός από τη δήλωση Exit Function μέσα σε μια διαδικασία Function.

Η δήλωση Exit Function προκαλεί αυτόματη έξοδο από τη διαδικασία Function. Η εκτέλεση του προγράμματος συνεχίζεται με τη δήλωση που ακολουθεί τη δήλωση που κάλεσε τη διαδικασία Function. Μπορεί να εμφανιστεί οποιοσδήποτε αριθμός από τη δήλωση Exit Function μέσα σε μια διαδικασία Function.
 
 

Όπως η διαδικασία Sub έτσι και η Function είναι μια ξεχωριστή διαδικασία η οποία μπορεί να δεχτεί ορίσματα, να πραγματοποιήσει, εκτελέσει μια σειρά από δηλώσεις και να αλλάξει τις τιμές των ορισμάτων. Παρ ’όλα αυτά, αντίθετα από μια διαδικασία Sub, μπορείτε να χρησιμοποιήσετε μια Function στα δεξιά μιας έκφρασης με τον ίδιο ακριβώς τρόπο που χειρίζεστε οποιαδήποτε function, όπως τη Sqr, Cos ή τη Chr, οταν επιθυμείτε να χρησιμοποιήσετε τη τιμή που επιστρέφεται
Καλείτε μια διαδικασία Function μέσα σε μια έκφραση, χρησιμοποιώντας το όνομα της function και μετά τη λίστα των ορισμάτων μέσα σε παρενθέσεις. Μπορείτε να παρατηρείστε τη δήλωση Call ώστε να αντλήσετε συγκεκριμένες πληροφορίες πάνω στο πως να καλείτε διαδικασίες Function.
 
 
.

 

   
  Προσοχή! Οι διαδικασίες Function μπορούν να επαναλαμβάνουν τον εαυτό τους (αναδρομή). Αυτό σημαίνει ότι μπορούν να καλέσουν από μόνες τους τον εαυτό τους και να εκτελέσουν μια δεδομένη εντολή. Κάτι τέτοιο όμως μπορεί να οδηγήσει σε υπερχείλιση.


 

Για να επιστρέψετε μια τιμή από μια function, ορίστε τη τιμή στο όνομα της function. Μπορεί να εμφανιστεί οποιοσδήποτε αριθμός τέτοιων ορισμών μέσα στη διαδικασία. Αν καμία τιμή δεν έχει οριστεί στο συγκεκριμένο name , τότε η διαδικασία επιστρέφει μια προκαθορισμένη τιμή. Μια αριθμητική function επιστρέφει 0 και μια function συμβολοσειράς επιστρέφει μια συμβολοσειρά μηδενικού μήκους ( ΄΄΄΄ ). Μια function η οποία επιστρέφει μια αναφορά σ’ ένα αντικείμενο, επιστρέφει Nothingαν δεν έχει οριστεί κανένα αντικείμενο στο name ( χρησιμοποιώντας το Set ) μέσα στη function.
 
 

Το ακόλουθο παράδειγμα δείχνει πως μπορείτε να ορίσετε μια επιστρεφόμενη τιμή σε μια function που ονομάζεται BinarySearch. Σ’ αυτή τη περίπτωση ορίζεται το False στο όνομα προκειμένου να φανερωθεί ότι δεν έχει βρεθεί καμία τιμή.
 
 

Function BinarySearch (…)

        …

        ‘ Value not found. Return a value of False.

        If lower upper Then

                BinarySearch = False

                Exit Function

        End If

        …

End Function
 

Οι μεταβλητές οι οποίες χρησιμοποιούνται στις διαδικασίες Function χωρίζονται σε δυο κατηγορίες. Σ’ αυτές που δηλώνονται αναλυτικά μέσα στη διαδικασία και σ’ αυτές που δε δηλώνονται σαφώς. Οι μεταβλητές που αναλυτικά δηλώνονται μέσα σε μια διαδικασία (χρησιμοποιώντας τη Dim) είναι πάντα τοπικές στη διαδικασία. Οι μεταβλητές που χρησιμοποιούνται μεν μέσα στη διαδικασία αλλά δεν έχουν δηλωθεί αναλυτικά από πριν, είναι κι αυτές τοπικές εκτός αν έχουν δηλωθεί σε κάποιο υψηλότερο επίπεδο έξω από τη διαδικασία.
 
 
 
 

  Προσοχή! Μια διαδικασία μπορεί να χρησιμοποιήσει μια μεταβλητή που δεν έχει δηλωθεί αναλυτικά μέσα σ’ αυτή, αλλά μπορεί να δημιουργηθεί σύγχυση αν οτιδήποτε άλλο που θα χρησιμοποιηθεί στο ίδιο επίπεδο, έχει το ίδιο όνομα. Αν η διαδικασία σας αναφέρεται σε μια αδήλωτη μεταβλητή η οποία έχει το ίδιο όνομα και σε μια άλλη διαδικασία, σταθερά ή μεταβλητή, υποτίθεται ότι η διαδικασία σας αναφέρεται στο όνομα που χρησιμοποιείται στο συγκεκριμένο επίπεδο. Για να αποφύγετε τέτοιου είδους συγχύσεις πρέπει να δηλώσετε αναλυτικά όλες τις μεταβλητές. Μπορείτε επίσης να χρησιμοποιήσετε τη δήλωση Option Explicit για να πιέσετε και να αναγκάσετε έτσι την υποχρεωτική δήλωση όλων των μεταβλητών. 

 

   


 

 

 

  Προσοχή! Η VBScript μπορεί να επαναδιευθετήσει τις αριθμητικές εκφράσεις προκειμένου να αυξήσει την εσωτερική απόδοση του κειμένου. Γι αυτό το λόγο αποφεύγετε να χρησιμοποιείτε μια διαδικασία Function μέσα σε μια αριθμητική έκφραση όταν η function αλλάζει τη τιμή των μεταβλητών μέσα στην ίδια έκφραση. 

 

   


© 1997 Microsoft Corporation. All rights reserved.