Βρίσκεστε συχνά στον εαυτό σας αντιγραφή και επικόλληση του κωδικού σας για επαναχρησιμοποίηση σε διαφορετικές ενότητες στο πρόγραμμά σας;

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

Τι είναι μια λειτουργία;

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

Τι είναι η αναδρομή και πώς τη χρησιμοποιείτε;

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

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

Πώς γράφετε μια συνάρτηση;

Υπάρχουν πολλοί διαφορετικοί τρόποι για να γράψετε συναρτήσεις. Η ακριβής σύνταξη εξαρτάται από τη γλώσσα στην οποία προγραμματίζετε. Θα δείξουμε παραδείγματα σε Python, JavaScript και C ++ για να δείξουμε μια σειρά σύνταξης προγραμματισμού.

Σχετιζομαι με: Γιατί οι γλώσσες προγραμματισμού δεν μπορούν να υπάρχουν χωρίς λειτουργίες

Άκυρες λειτουργίες

Ο πρώτος τύπος συνάρτησης που θα εξετάσουμε είναι μια λειτουργία άκυρου. Αυτό σημαίνει απλώς ότι η συνάρτηση δεν επιστρέφει μια τιμή. Οι άκυρες λειτουργίες χρησιμοποιούνται για τη συμπλήρωση ενός συνόλου οδηγιών. Σε αυτά τα παραδείγματα, ονομάζεται η συνάρτηση που γράψαμε γεια σας. Ο σκοπός της συνάρτησης είναι η έξοδος "Hello World".

ΣΥΜΒΟΥΛΗ: δώστε συναρτήσεις ονόματα που εξηγούν τι κάνουν. Θα είναι ευκολότερο να διαχειριστείτε τις λειτουργίες και να διαβάσετε τον κώδικα καθώς το πρόγραμμά σας γίνεται πιο περίπλοκο.

Πύθων

def helloFunction ():
εκτύπωση ("Hello World")
γειά σου Λειτουργία ()

Η λέξη-κλειδί ορισμός χρησιμοποιείται στο Python για να ορίσει και να δημιουργήσει μια συνάρτηση. Στη συνέχεια, είναι το όνομα της συνάρτησης. Οι οδηγίες στη συνάρτηση ακολουθούν στην επόμενη γραμμή μετά το παχύ έντερο. Ο Λευκός χώρος έχει σημασία στο Python, οπότε φροντίστε να εισαγάγετε όλο τον κώδικα που θέλετε να εκτελείται η λειτουργία σας. Στο παραπάνω παράδειγμα, η συνάρτηση εκτελεί μια γραμμή κώδικα.

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

JavaScript

συνάρτηση helloFunction () {
ειδοποίηση ("Hello World!");
}
Γεια σας Λειτουργία ();

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

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

Σημείωση: Μου αρέσει πολύ Τυπώνω() στο προηγούμενο παράδειγμα, συναγερμός() είναι επίσης μια συνάρτηση.

C ++

#περιλαμβάνω 
χρησιμοποιώντας το namespace std;
void helloFunction () {
<< "Γεια σου Κόσμος!";
}
int main () {
Γεια σας Λειτουργία ();
επιστροφή 0;
}

Οι συναρτήσεις δημιουργούνται διαφορετικά στο C ++. Αντί για μια λέξη-κλειδί για τον ορισμό μιας συνάρτησης, η πρώτη λέξη περιγράφει τον τύπο δεδομένων που θα επιστρέψει η συνάρτηση. Σε αυτήν την περίπτωση, η λειτουργία μας δεν επιστρέφει δεδομένα, επομένως τα δεδομένα είναι άκυρα. Στη συνέχεια, έχουμε το όνομα της συνάρτησης. Παρόμοια με τη JavaScript, ο κώδικας μεταξύ των σγουρών αγκύλων εκτελείται όταν καλείται η συνάρτηση. Ομοίως με το JavaScript, το κενό διάστημα δεν επηρεάζει τη λειτουργία αλλά είναι καλή πρακτική.

Εντοπίσατε μια άλλη λειτουργία στον κώδικα C ++; Ναί, κύριος() είναι μια συνάρτηση. Όταν εκτελείτε ένα πρόγραμμα C ++, καλείτε αυτόματα την κύρια λειτουργία. Όταν η κύρια λειτουργία ολοκληρωθεί με επιτυχία, επιστρέφει 0 καθώς βγαίνει από το πρόγραμμα για να υποδείξει ότι δεν υπήρχαν σφάλματα κατά την εκτέλεση του προγράμματος.

Λειτουργίες που απαιτούν τιμές

Οι άκυρες λειτουργίες είναι εξαιρετικές εάν διαπιστώσετε ότι γράφετε το ίδιο κομμάτι κώδικα ξανά και ξανά. Αλλά μπορεί να είναι περιοριστική. Είναι στατικά και δεν αλλάζουν. Πάντα συμπληρώνουν τις ίδιες οδηγίες. Ένας τρόπος για να αυξήσουμε τη χρησιμότητά τους είναι να μεταβιβάσουμε διαφορετικές τιμές στη συνάρτηση.

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

Πύθων

def helloFunction (newPhrase):
εκτύπωση (newPhrase)
helloFunction ("Η νέα μας φράση")

Τώρα, μεταξύ των αγκυλών, η συνάρτηση μας δηλώνει ότι χρειάζεται μια μεταβλητή για να εκτελεστεί. Ονομάσαμε τη μεταβλητή νέα φράση και τώρα μπορεί να το χρησιμοποιήσει στη λειτουργία μας. Όταν καλούμε τη συνάρτηση, πρέπει να περάσουμε τις ζητούμενες πληροφορίες τοποθετώντας τις μεταξύ των αγκυλών. Οι ίδιες αλλαγές έγιναν στο JavaScript.

JavaScript

συνάρτηση helloFunction (newPhrase) {
ειδοποίηση (newPhrase)
}
helloFunction ("Η νέα μας φράση");

C ++

#περιλαμβάνω 
χρησιμοποιώντας το namespace std;
void helloFunction (string newPhrase) {
cout << newPhrase;
}
int main () {
helloFunction ("Η νέα μας φράση");
επιστροφή 0;
}

Η λειτουργία C ++ απαιτούσε λίγο περισσότερες πληροφορίες. Γνωρίζουμε ότι η λειτουργία σας θέλει δεδομένα συμβολοσειράς, αλλά αυτό δεν είναι αρκετά καλό για το C ++. Όταν δημιουργείτε τη λειτουργία σας, πρέπει να καθορίσετε τον τύπο δεδομένων που απαιτεί η λειτουργία σας. Εάν δεν στείλετε τον σωστό τύπο δεδομένων, η συνάρτηση θα δημιουργήσει ένα σφάλμα.

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

Σχετιζομαι με: 5 λειτουργικές γλώσσες προγραμματισμού που πρέπει να γνωρίζετε

Λειτουργίες που επιστρέφουν μια τιμή

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

Πύθων

def ΠροσθήκηFunction (a, b):
επιστροφή a + b
εκτύπωση (προσθήκη λειτουργίας (2, 4))

Σε αυτό το παράδειγμα, η λειτουργία μας απαιτεί δύο μεταβλητές αντί για μία. Υποδεικνύουμε ότι διαχωρίζοντας τα μεταβλητά ονόματά μας με κόμμα. Η λέξη-κλειδί ΕΠΙΣΤΡΟΦΗ λέει στη λειτουργία να επιστρέψει τα ακόλουθα δεδομένα, σε αυτήν την περίπτωση, 2 + 4 ή 6. Καλούμε τη συνάρτηση μέσα στο Τυπώνω() λειτουργία.

Μόλις το πρόγραμμά μας έφτασε σε αυτήν τη γραμμή, θα είχε σταματήσει, θα εκτελούσε τη λειτουργία μας και θα συνέχιζε σαν Προσθήκη λειτουργίας (2, 4) ήταν στην πραγματικότητα μόνο η επιστρεφόμενη τιμή 6.

JavaScript

Ο κώδικας JavaScript είναι πολύ παρόμοιος με τον κώδικα Python. Η κύρια διαφορά είναι ότι η συνάρτηση καλείται σε μια προειδοποίηση.

λειτουργία προσθήκηςFunction (a, b) {
επιστροφή a + b;
}
προειδοποίηση (ΠροσθήκηFunction (2, 4));

C ++

#περιλαμβάνω 
χρησιμοποιώντας το namespace std;
intambahFunction (int a, int b) {
επιστροφή a + b;
}
int main () {
cout << ΠροσθήκηFunction (2, 4);
επιστροφή 0;
}

Ο κώδικας C ++ εκτελείται παρόμοια, αλλά ως συνήθως, απαιτεί λίγο περισσότερες πληροφορίες. Πρώτον, πρέπει να πούμε τι τύπο δεδομένων θα επιστρέψει η λειτουργία μας. Θα το δεις αυτό κενός έχει αλλάξει σε int. Αυτό σημαίνει ότι αντί να επιστρέφουμε δεδομένα, η λειτουργία μας θα επιστρέψει έναν ακέραιο. Πέρα από αυτό, ο κώδικας είναι παρόμοιος με τον κώδικα που έχουμε ήδη διερευνήσει.

Διαχειριστείτε τις λειτουργίες σας

Ένα διασκεδαστικό πράγμα για τις λειτουργίες είναι ότι οι λειτουργίες μπορούν να καλέσουν άλλες λειτουργίες. Μπορούν ακόμη και να αποκαλούν τον εαυτό τους! Αλλά με μεγάλη δύναμη έρχεται μεγάλη ευθύνη. Μην τρελαίνετε δημιουργώντας κώδικα με λειτουργίες που καλούν άλλες συναρτήσεις που καλούν ακόμη περισσότερες λειτουργίες.

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

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
Πώς να διατηρήσετε τον κωδικό σας καθαρό με ενθυλάκωση αντικειμένων

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

Σχετικά θέματα
  • Προγραμματισμός
  • Προγραμματισμός
  • Λειτουργικός προγραμματισμός
Σχετικά με τον Συγγραφέα
Τζένιφερ Σιάτον (Δημοσιεύθηκαν 20 άρθρα)

Ι. Το Seaton είναι Επιστημονικός Συγγραφέας που ειδικεύεται στη διάλυση σύνθετων θεμάτων. Έχει διδακτορικό από το Πανεπιστήμιο του Σασκάτσουαν. Η έρευνά της επικεντρώθηκε στη χρήση της μάθησης με βάση το παιχνίδι για την αύξηση της αφοσίωσης των μαθητών στο διαδίκτυο. Όταν δεν εργάζεται, θα την βρείτε με την ανάγνωση, το παιχνίδι βιντεοπαιχνιδιών ή την κηπουρική.

Περισσότερα από την Jennifer Seaton

Εγγραφείτε στο Newsletter μας

Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!

Ένα ακόμη βήμα…!

Επιβεβαιώστε τη διεύθυνση email σας στο email που μόλις σας στείλαμε.

.