Te găsești adesea copiind și lipind codul tău pentru a-l reutiliza în diferite secțiuni din programul tău?

Dacă da, vă recomandăm să utilizați funcții. Funcțiile sunt o caracteristică foarte puternică a limbajelor de programare. Acestea pot face codul mai eficient, mai ușor de citit și mai elegant.

Ce este o funcție?

O funcție este un bloc de cod care efectuează o sarcină. Se poate numi și refolosite de mai multe ori. Puteți transmite informații către o funcție și aceasta poate trimite informații înapoi. Multe limbaje de programare au funcții încorporate pe care le puteți accesa în biblioteca lor, dar vă puteți crea și propriile funcții.

Ce este recursivitatea și cum o utilizați?

Aflați elementele de bază ale recursivității, instrumentul esențial, dar ușor de gândit pentru programatori.

Când apelați o funcție, programul va întrerupe programul curent și va executa funcția. Funcția va fi citită de sus în jos. Odată ce funcția este completă, programul continuă să ruleze acolo unde se oprise. Dacă funcția a returnat o valoare, acea valoare va fi utilizată acolo unde a fost apelată funcția.

Cum scrieți o funcție?

Există multe modalități diferite de a scrie funcții. Sintaxa exactă va depinde de limbajul în care programați. Vom arăta exemple în Python, JavaScript și C ++ pentru a demonstra o gamă de sintaxă de programare.

Legate de: De ce limbajele de programare nu pot exista fără funcții

Funcții de vid

Primul tip de funcție pe care îl vom analiza este o funcție nulă. Acest lucru înseamnă pur și simplu că funcția nu returnează o valoare. Funcțiile vid sunt folosite pentru a completa un set de instrucțiuni. În aceste exemple, funcția pe care am scris-o se numește salutFuncție. Scopul funcției este de a afișa „Hello World”.

SFAT: dați funcțiilor nume care explică ce fac. Va fi mai ușor să gestionați funcțiile și să citiți codul pe măsură ce programul dvs. devine mai complex.

Piton

def helloFunction ():
print („Hello World”)
helloFunction ()

Cuvântul cheie def este folosit în Python pentru a defini și a crea o funcție. În continuare, este numele funcției. Instrucțiunile din funcție urmează pe următoarea linie după colon. Spațiul alb contează în Python, deci asigurați-vă că introduceți tot codul pe care doriți să îl ruleze funcția dvs. În exemplul de mai sus, funcția rulează o linie de cod.

Ochii tăi dornici ar fi putut observa asta imprimare() este, de asemenea, o funcție, dar este numită diferit de funcția noastră. Țineți-vă la acel gând chiar acum, vom explora funcțiile și parametrii mai târziu.

JavaScript

funcție helloFunction () {
alert („Hello World!”);
}
helloFunction ();

În JavaScript, cuvântul cheie funcţie este folosit pentru a crea funcții. Apoi, avem numele funcției. Orice cod care se încadrează între parantezele bucle este rulat atunci când funcția este apelată.

Spațiul alb nu este important în JavaScript, dar este obișnuit să introduceți codul în funcție. Indentarea face codul mai ușor de citit, ceea ce este foarte important pe măsură ce programele dvs. devin mai complexe.

Notă: La fel imprimare() în exemplul anterior, alerta() este, de asemenea, o funcție.

C ++

#include 
folosind spațiul de nume std;
void helloFunction () {
cout << "Hello World!";
}
int main () {
helloFunction ();
retur 0;
}

Funcțiile sunt create diferit în C ++. În loc de un cuvânt cheie pentru a defini o funcție, primul cuvânt descrie tipul de date pe care funcția le va returna. În acest caz, funcția noastră nu returnează date, astfel încât datele sunt nule. Apoi, avem numele funcției. Similar cu JavaScript, tot codul dintre parantezele buclate este rulat atunci când funcția este apelată. De asemenea, similar cu JavaScript, spațiul alb nu afectează funcția, dar este o bună practică.

Ați identificat o altă funcție în codul C ++? Da, principal() este o funcție. Când executați un program C ++, apelați automat funcția principală. Când funcția principală este finalizată cu succes, returnează 0 deoarece iese din program pentru a semnaliza că nu au existat erori care rulează programul.

Funcții care necesită valori

Funcțiile de vid sunt grozave dacă descoperiți că scrieți același bit de cod din nou și din nou. Dar ele pot fi limitative. Sunt statice și nu se schimbă. Urmează întotdeauna aceleași instrucțiuni. O modalitate prin care le putem crește utilitatea este de a transmite diferite valori funcției.

Veți observa că parantezele au urmat numele tuturor funcțiilor noastre. În paranteze, putem declara că sunt necesare date pentru a ne rula funcția. Apoi putem folosi datele transmise funcției noastre în funcție. Să aruncăm o privire la exemplele anterioare din nou, dar de această dată treceți expresia pe care vrem să o scoatem la iveală.

Piton

def helloFunction (newPhrase):
print (newPhrase)
helloFunction („Noua noastră frază”)

Acum, între paranteze, funcția noastră declară că are nevoie de o variabilă pentru a rula. Am numit variabila newPhrase și o putem folosi acum în funcția noastră. Când apelăm funcția, trebuie să transmitem informațiile solicitate plasându-le între paranteze. Aceleași modificări au fost făcute în JavaScript.

JavaScript

funcție salutFuncție (frază nouă) {
alert (newPhrase);
}
helloFunction („Noua noastră frază”);

C ++

#include 
folosind spațiul de nume std;
void helloFunction (string newPhrase) {
cout << newPhrase;
}
int main () {
helloFunction („Noua noastră frază”);
retur 0;
}

Funcția noastră C ++ a necesitat ceva mai multe informații. Știm că funcția dvs. dorește șiruri de date, dar acest lucru nu este suficient de bun pentru C ++. Când vă creați funcția, trebuie să specificați ce tip de date necesită funcția dvs. Dacă nu trimiteți tipul corect de date, funcția va crea o eroare.

Acest lucru ar putea părea puțin enervant, dar limbajele stricte vă pot salva de multe ori dureri de cap. Dacă scrieți o funcție în JavaScript care necesită un număr întreg, dar numărul este trimis ca șir, se poate crea o eroare care este foarte greu de urmărit.

Legate de: 5 limbaje funcționale de programare pe care ar trebui să le cunoașteți

Funcții care returnează o valoare

Abilitatea finală a funcției pe care o vom acoperi este returnarea datelor. Acest lucru este deosebit de valoros atunci când doriți să modificați datele înainte de a le utiliza. Deși ați putea scrie acea linie, dacă veți folosi aceleași calcule de multe ori, cum ar fi conversia imperială în metrică, ar putea avea mai mult sens să o scrieți ca o funcție. Exemplul nostru va fi mai simplu. Funcția noastră va necesita două numere întregi și va returna suma.

Piton

Funcția de adăugare def (a, b):
returnează a + b
print (addFunction (2, 4))

În acest exemplu, funcția noastră necesită două variabile în loc de una. Indicăm acest lucru separând numele variabilelor noastre cu o virgulă. Cuvântul cheie întoarcere spune funcției să returneze următoarele date, în acest caz, 2 + 4 sau 6. Numim funcția din interiorul imprimare() funcţie.

Odată ce programul nostru a ajuns la acea linie, s-ar fi întrerupt, ne-ar fi rulat funcția și apoi va continua ca și cum addFunction (2, 4) a fost de fapt doar valoarea returnată 6.

JavaScript

Codul JavaScript este foarte similar cu codul Python. Diferența principală este că funcția este apelată într-o alertă.

funcție adăugândFuncție (a, b) {
returnează a + b;
}
alert (addFunction (2, 4));

C ++

#include 
folosind spațiul de nume std;
int addFunction (int a, int b) {
returnează a + b;
}
int main () {
cout << addFunction (2, 4);
retur 0;
}

Codul C ++ rulează în mod similar, dar, ca de obicei, necesită ceva mai multe informații. În primul rând, trebuie să spunem ce tip de date va reveni funcția noastră. Vei vedea asta nul a fost schimbat în int. Aceasta înseamnă că, în loc să nu returnăm date, funcția noastră va returna un număr întreg. Dincolo de asta, codul este similar cu cel pe care l-am explorat deja.

Gestionați-vă funcțiile

Un lucru distractiv despre funcții este că funcțiile pot numi alte funcții. Se pot chiar numi! Dar cu o mare putere vine o mare responsabilitate. Nu înnebuni creând cod cu funcții care apelează alte funcții care apelează încă mai multe funcții.

După cum sa menționat, de fiecare dată când este apelată o funcție, programul se întrerupe în timp ce rulează funcția. Aceasta înseamnă că programul este ținut în memoria activă. Dacă mai apelați mai multe funcții fără a le finaliza, utilizați mai multă memorie activă. Dacă nu sunteți atent, programul dvs. poate scăpa de sub control.

E-mail
Cum să vă păstrați codul curat cu încapsularea obiectelor

Variabilele globale ar putea părea simple, dar ele sunt adesea cauza a atât de multe erori. Iată cum să vă simplificați codul cu încapsulare.

Subiecte asemănătoare
  • Programare
  • Programare
  • Programare funcțională
Despre autor
Jennifer Seaton (20 de articole publicate)

J. Seaton este un scriitor științific specializat în descompunerea subiectelor complexe. Are un doctorat la Universitatea din Saskatchewan; cercetările sale s-au concentrat pe utilizarea învățării bazate pe jocuri pentru a spori implicarea elevilor online. Când nu lucrează, o veți găsi cu ea citind, jucând jocuri video sau grădinărit.

Mai multe de la Jennifer Seaton

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Încă un pas…!

Vă rugăm să confirmați adresa de e-mail în e-mailul pe care tocmai vi l-am trimis.

.