Da li vam se često čini da kopirate i lijepite svoj kôd za ponovnu upotrebu u različitim odjeljcima vašeg programa?

Ako je tako, možda biste trebali razmisliti o upotrebi funkcija. Funkcije su vrlo moćna značajka programskih jezika. Oni mogu kôd učiniti učinkovitijim, lakšim za čitanje i elegantnijim.

Što je funkcija?

Funkcija je blok koda koji izvršava zadatak. Može se nazvati i ponovno upotrijebljena više puta. Možete proslijediti informacije funkciji, a ona ih može poslati natrag. Mnogi programski jezici imaju ugrađene funkcije kojima možete pristupiti u njihovoj knjižnici, ali možete stvoriti i vlastite funkcije.

Što je rekurzija i kako je koristite?

Naučite osnove rekurzije, osnovnog, ali pomalo zbunjujućeg alata za programere.

Kada pozovete funkciju, program će zaustaviti trenutni program i izvršiti funkciju. Funkcija će se čitati odozgo prema dolje. Kad je funkcija dovršena, program nastavlja raditi tamo gdje je pauzirao. Ako je funkcija vratila vrijednost, ta će se vrijednost koristiti tamo gdje je funkcija pozvana.

instagram viewer

Kako napišete funkciju?

Postoji mnogo različitih načina za pisanje funkcija. Točna sintaksa ovisit će o jeziku na kojem programirate. Pokazat ćemo primjere u Pythonu, JavaScript-u i C ++-u kako bismo demonstrirali niz sintaksa programiranja.

Povezano: Zašto programski jezici ne mogu postojati bez funkcija

Funkcije šupljine

Prva vrsta funkcije koju ćemo razmotriti je void funkcija. To jednostavno znači da funkcija ne vraća vrijednost. Funkcije praznine koriste se za dovršavanje niza uputa. U ovim se primjerima naziva funkcija koju smo napisali pozdravFunkcija. Svrha funkcije je izlaz "Hello World".

SAVJET: dajte funkcijama imena koja objašnjavaju što rade. Bit će lakše upravljati funkcijama i čitati kod kako vaš program postaje složeniji.

Piton

def helloFunction ():
ispis ("Hello World")
pozdravFunction ()

Ključna riječ def koristi se u Pythonu za definiranje i stvaranje funkcije. Sljedeće je ime funkcije. Upute u funkciji slijede u sljedećem retku nakon dvotočke. Prazni prostor je važan u Pythonu, zato uvucite sav kôd za koji želite da se vaša funkcija izvodi. U gornjem primjeru funkcija pokreće jedan redak koda.

Vaše bi oštre oči to mogle primijetiti ispis () je također funkcija, ali naziva se drugačije od naše funkcije. Držite se te misli upravo sada, kasnije ćemo istražiti funkcije parametara.

JavaScript

funkcija helloFunction () {
upozorenje ("Pozdrav svijetu!");
}
helloFunction ();

U JavaScript-u ključna riječ funkcija koristi se za stvaranje funkcija. Dalje, imamo ime funkcije. Bilo koji kod koji padne između kovrčavih zagrada pokrenut je kad je funkcija pozvana.

Razmak u JavaScript nije važan, ali je uobičajeno uvlačenje koda u funkciju. Uvlačenje čini kod lakšim za čitanje, što je vrlo važno kako vaši programi postaju sve složeniji.

Napomena: Slično ispis () u ranijem primjeru, upozorenje () je također funkcija.

C ++

#include 
pomoću prostora imena std;
void helloFunction () {
cout << "Pozdrav svijetu!";
}
int main () {
helloFunction ();
povratak 0;
}

Funkcije se na C ++ stvaraju drugačije. Umjesto ključne riječi za definiranje funkcije, prva riječ opisuje vrstu podataka koje će funkcija vratiti. U ovom slučaju, naša funkcija ne vraća nikakve podatke, pa su podaci nevažeći. Dalje, imamo ime funkcije. Slično JavaScriptu, sav kôd između kovrčavih zagrada pokreće se kad je funkcija pozvana. Također slično JavaScriptu, bijeli prostor ne utječe na funkciju, ali je dobra praksa.

Jeste li primijetili drugu funkciju u C ++ kodu? Da, glavni() je funkcija. Kada izvršite program C ++, automatski pozivate glavnu funkciju. Kada je glavna funkcija uspješno dovršena, vraća 0 kad izlazi iz programa da signalizira da nije bilo pogrešaka u pokretanju programa.

Funkcije koje zahtijevaju vrijednosti

Funkcije void izvrsne su ako utvrdite da uvijek iznova pišete isti bit koda. Ali oni mogu biti ograničavajući. Oni su statični i ne mijenjaju se. Uvijek ispunjavaju iste upute. Jedan od načina na koji možemo povećati njihovu korisnost je prenošenje različitih vrijednosti funkciji.

Primijetili ste da su zagrade slijedile nazive svih naših funkcija. U zagradama možemo izjaviti da su podaci potrebni za pokretanje naše funkcije. Tada možemo koristiti podatke proslijeđene našoj funkciji u funkciji. Pogledajmo ponovno prethodne primjere, ali ovaj put prenesite frazu za koju želimo da se iznese.

Piton

def helloFunction (newPhrase):
ispis (newPhrase)
helloFunction ("Naša nova fraza")

Sada, između zagrada, naša funkcija izjavljuje da joj treba varijabla za pokretanje. Nazvali smo varijablu newPhrase i sada ga može koristiti u našoj funkciji. Kada pozivamo funkciju, trebamo proslijediti tražene podatke stavljajući ih između zagrada. Iste promjene izvršene su i u JavaScript-u.

JavaScript

funkcija helloFunction (newPhrase) {
upozorenje (newPhrase);
}
helloFunction ("Naša nova fraza");

C ++

#include 
pomoću prostora imena std;
void helloFunction (string newPhrase) {
cout << newPhrase;
}
int main () {
helloFunction ("Naša nova fraza");
povratak 0;
}

Naša funkcija C ++ zahtijevala je malo više informacija. Znamo da vaša funkcija želi niz podataka, ali to nije dovoljno dobro za C ++. Kada kreirate svoju funkciju, morate odrediti koju vrstu podataka vaša funkcija zahtijeva. Ako ne pošaljete ispravnu vrstu podataka, funkcija će stvoriti pogrešku.

To može izgledati pomalo dosadno, ali strogi jezici često vam mogu uštedjeti glavobolju. Ako na JavaScript napišete funkciju koja zahtijeva cijeli broj, ali se broj šalje kao niz, to može stvoriti grešku kojoj je vrlo teško ući u trag.

Povezano: 5 funkcionalnih programskih jezika koje biste trebali znati

Funkcije koje vraćaju vrijednost

Konačna sposobnost funkcije koju ćemo pokriti je vraćanje podataka. To je posebno vrijedno kada želite promijeniti podatke prije nego što ih upotrijebite. Iako biste to mogli napisati u retku, ako ćete više puta koristiti iste izračune, poput pretvaranja imperijalnog u metrički, možda bi bilo logičnije napisati ga kao funkciju. Naš će primjer biti jednostavniji. Za našu će funkciju biti potrebne dvije cijele vrijednosti i vratit će zbroj.

Piton

def addFunction (a, b):
vrati a + b
ispis (addFunction (2, 4))

U ovom primjeru naša funkcija zahtijeva dvije varijable umjesto jedne. To označavamo razdvajanjem naziva varijabli zarezom. Ključna riječ povratak govori funkciji da vrati sljedeće podatke, u ovom slučaju 2 + 4 ili 6. Pozivamo funkciju unutar ispis () funkcija.

Kad bi naš program došao do te linije, zaustavio bi se, pokrenuo našu funkciju i nastavio kao da je addFunction (2, 4) je zapravo bila samo vraćena vrijednost 6.

JavaScript

JavaScript kôd vrlo je sličan Python kodu. Primarna je razlika u tome što se funkcija poziva u upozorenju.

funkcija addFunction (a, b) {
vrati a + b;
}
upozorenje (addFunction (2, 4));

C ++

#include 
pomoću prostora imena std;
int addFunction (int a, int b) {
vrati a + b;
}
int main () {
cout << addFunction (2, 4);
povratak 0;
}

Kôd C ++ radi slično, ali kao i obično, zahtijeva malo više informacija. Prvo, moramo reći koju vrstu podataka će naša funkcija vratiti. Vidjet ćete to poništiti je promijenjen u int. To znači da će naša funkcija umjesto povratka podataka vratiti cijeli broj. Osim toga, kod je sličan kodu koji smo već istražili.

Upravljajte svojim funkcijama

Zabavna stvar kod funkcija je ta što funkcije mogu pozivati ​​druge funkcije. Mogu se i sami nazvati! Ali s velikom moći dolazi i velika odgovornost. Nemojte poludjeti stvarajući kod s funkcijama koje pozivaju druge funkcije koje pozivaju još više funkcija.

Kao što je spomenuto, svaki put kad se funkcija pozove, program zastaje dok izvršava funkciju. To znači da se program zadržava u aktivnoj memoriji. Ako pozovete još nekoliko funkcija, a da ih niste dovršili, koristite aktivniju memoriju. Ako niste oprezni, vaš program može izmaknuti kontroli.

E-mail
Kako održavati svoj kod čistim pomoću enkapsulacije objekata

Globalne varijable mogu se činiti jednostavnima, ali često su uzrok toliko bugova. Evo kako pojednostaviti svoj kod enkapsulacijom.

Povezane teme
  • Programiranje
  • Programiranje
  • Funkcionalno programiranje
O autoru
Jennifer Seaton (Objavljeno 20 članaka)

J. Seaton je znanstveni pisac specijaliziran za razbijanje složenih tema. Doktorirala je na Sveučilištu Saskatchewan; njezino se istraživanje usredotočilo na korištenje učenja temeljenog na igrama za povećanje angažmana učenika na mreži. Kad ne radi, naći ćete je dok čita, igra videoigre ili vrtlari.

Više od Jennifer Seaton

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Još jedan korak…!

Potvrdite svoju e-adresu u e-pošti koju smo vam upravo poslali.

.