Ali se pogosto znajdete, da kopirate in prilepite kodo za ponovno uporabo v različne razdelke programa?
V tem primeru lahko razmislite o uporabi funkcij. Funkcije so zelo zmogljiva lastnost programskih jezikov. Kodo lahko naredijo učinkovitejšo, lažjo za branje in elegantno.
Kaj je funkcija?
Funkcija je blok kode, ki izvaja nalogo. Lahko ga pokličete in večkrat uporabljena. Informacije lahko posredujete funkciji, ta pa jih lahko pošlje nazaj. Številni programski jeziki imajo vgrajene funkcije, do katerih lahko dostopate v njihovi knjižnici, lahko pa ustvarite tudi svoje funkcije.
Spoznajte osnove rekurzije, bistvenega, a nekoliko motečega orodja za programerje.
Ko pokličete funkcijo, program zaustavi trenutni program in izvede funkcijo. Funkcija se bere od zgoraj navzdol. Ko je funkcija končana, se program še naprej izvaja tam, kjer je bil zaustavljen. Če je funkcija vrnila vrednost, bo ta vrednost uporabljena tam, kjer je bila funkcija poklicana.
Kako napišem funkcijo?
Obstaja veliko različnih načinov pisanja funkcij. Natančna sintaksa bo odvisna od jezika, v katerem programirate. Prikazali bomo primere v Pythonu, JavaScript in C ++, da prikažemo vrsto programske sintakse.
Sorodno: Zakaj programski jeziki ne morejo obstajati brez funkcij
Funkcije praznine
Prva vrsta funkcije, ki si jo bomo ogledali, je void funkcija. To preprosto pomeni, da funkcija ne vrne vrednosti. Funkcije Void se uporabljajo za dokončanje nabora navodil. V teh primerih se imenuje funkcija, ki smo jo napisali zdravoFunction. Namen funkcije je izpis "Hello World".
NASVET: funkcijam dajte imena, ki pojasnjujejo, kaj počnejo. Lažje bo upravljanje funkcij in branje kode, ko bo vaš program bolj zapleten.
Python
def helloFunction ():
tisk ("Hello World")
helloFunction ()
Ključna beseda def se v Pythonu uporablja za definiranje in ustvarjanje funkcije. Nato je ime funkcije. Navodila v funkciji sledijo v naslednji vrstici za dvopičjem. Prazen prostor je v Pythonu pomemben, zato vstavite vso kodo, za katero želite, da se funkcija izvaja. V zgornjem primeru funkcija izvaja eno vrstico kode.
Vaše ostre oči bi to morda opazile natisni () je tudi funkcija, vendar se imenuje drugače kot naša funkcija. Držite se te misli zdaj, kasneje bomo raziskali funkcije parametrov.
JavaScript
funkcija helloFunction () {
opozorilo ("Pozdravljen svet!");
}
helloFunction ();
V JavaScript ključna beseda funkcijo se uporablja za ustvarjanje funkcij. Nato imamo ime funkcije. Vsaka koda, ki pade med zavite oklepaje, se zažene, ko je funkcija poklicana.
Prosti prostor v JavaScript ni pomemben, je pa običajno, da kodo v funkciji zamikate. Zamik olajša branje kode, kar je zelo pomembno, saj so vaši programi bolj zapleteni.
Opomba: Podobno natisni () v prejšnjem primeru, opozorilo () je tudi funkcija.
C ++
#include
uporaba imenskega prostora std;
void helloFunction () {
cout << "Pozdravljen svet!";
}
int main () {
helloFunction ();
vrnitev 0;
}
Funkcije so v C ++ ustvarjene drugače. Namesto ključne besede za definiranje funkcije prva beseda opisuje vrsto podatkov, ki jih bo funkcija vrnila. V tem primeru naša funkcija ne vrne nobenih podatkov, zato so podatki neveljavni. Nato imamo ime funkcije. Podobno kot JavaScript se med klicanjem funkcije zažene vsa koda med zavitimi oklepaji. Podobno kot JavaScript tudi presledek ne vpliva na funkcijo, vendar je dobra praksa.
Ste v kodi C ++ opazili še eno funkcijo? Ja, glavni () je funkcija. Ko zaženete program C ++, samodejno pokličete glavno funkcijo. Ko je glavna funkcija uspešno zaključena, pri izhodu iz programa vrne 0, kar pomeni, da pri zagonu programa ni prišlo do napak.
Funkcije, ki zahtevajo vrednosti
Funkcije Void so odlične, če ugotovite, da vedno znova pišete isti del kode. Lahko pa so omejujoče. So statični in se ne spreminjajo. Vedno izpolnjujejo ista navodila. Eden od načinov, kako lahko povečamo njihovo uporabnost, je, da funkciji posredujemo različne vrednosti.
Opazili boste, da so oklepaji sledili imenom vseh naših funkcij. V oklepajih lahko ugotovimo, da so podatki potrebni za zagon naše funkcije. Nato lahko uporabimo podatke, posredovane naši funkciji v funkciji. Ponovno si oglejmo prejšnje primere, toda tokrat podajmo stavek, ki ga želimo izpisati.
Python
def helloFunction (newPhrase):
tiskanje (newPhrase)
helloFunction ("Naša nova fraza")
Zdaj med oklepaji naša funkcija izjavlja, da za zagon potrebuje spremenljivko. Spremenljivko smo poimenovali newPhrase in ga lahko zdaj uporablja v naši funkciji. Ko pokličemo funkcijo, moramo posredovati zahtevane podatke tako, da jih postavimo med oklepaje. Enake spremembe so bile narejene v JavaScript.
JavaScript
funkcija helloFunction (newPhrase) {
opozorilo (newPhrase);
}
helloFunction ("Naša nova fraza");
C ++
#include
uporaba imenskega prostora std;
void helloFunction (niz newPhrase) {
cout << newPhrase;
}
int main () {
helloFunction ("Naša nova fraza");
vrnitev 0;
}
Naša funkcija C ++ je zahtevala malo več informacij. Vemo, da vaša funkcija želi niz podatkov, vendar to ni dovolj dobro za C ++. Ko ustvarite svojo funkcijo, morate določiti, katero vrsto podatkov vaša funkcija zahteva. Če ne pošljete pravilne vrste podatkov, bo funkcija ustvarila napako.
To se morda zdi nekoliko nadležno, vendar vam strogi jeziki pogosto lahko rešijo glavobol. Če v JavaScript napišete funkcijo, ki zahteva celo število, vendar je številka poslana kot niz, lahko ustvari napako, ki jo je zelo težko izslediti.
Sorodno: 5 funkcionalnih programskih jezikov, ki bi jih morali poznati
Funkcije, ki vrnejo vrednost
Končna sposobnost funkcije, ki jo bomo pokrivali, je vračanje podatkov. To je še posebej dragoceno, če želite spremeniti podatke, preden jih uporabite. Čeprav bi to lahko zapisali v vrstici, če boste večkrat uporabili iste izračune, na primer pretvorbo imperialne v metrično, bi bilo morda bolj smiselno, če bi jo zapisali kot funkcijo. Naš primer bo enostavnejši. Naša funkcija bo zahtevala dve celi števili in bo vrnila vsoto.
Python
def addFunction (a, b):
vrnite a + b
natisni (addFunction (2, 4))
V tem primeru naša funkcija zahteva dve spremenljivki namesto ene. To označimo tako, da imena spremenljivk ločimo z vejico. Ključna beseda vrnitev pove funkciji, da vrne naslednje podatke, v tem primeru 2 + 4 ali 6. Pokličemo funkcijo znotraj natisni () funkcijo.
Ko bi naš program prišel do te vrstice, bi se ustavil, zagnal našo funkcijo in nato nadaljeval, kot da bi addFunction (2, 4) je bila pravzaprav le vrnjena vrednost 6.
JavaScript
Koda JavaScript je zelo podobna kodi Python. Glavna razlika je v tem, da se funkcija pokliče v opozorilu.
funkcija addFunction (a, b) {
vrni a + b;
}
opozorilo (addFunction (2, 4));
C ++
#include
uporaba imenskega prostora std;
int addFunction (int a, int b) {
vrni a + b;
}
int main () {
cout << addFunction (2, 4);
vrnitev 0;
}
Koda C ++ deluje podobno, vendar kot običajno zahteva malo več informacij. Najprej moramo povedati, katero vrsto podatkov bo vrnila naša funkcija. To boste videli praznino je bil spremenjen v int. To pomeni, da bo naša funkcija namesto vrnitve nobenih podatkov vrnila celo število. Poleg tega je koda podobna tisti, ki smo jo že raziskali.
Upravljajte svoje funkcije
Funkcija pri funkcijah je, da funkcije lahko pokličejo druge funkcije. Lahko se celo pokličejo! Toda z veliko močjo prihaja velika odgovornost. Ne norite se pri ustvarjanju kode s funkcijami, ki prikličejo druge funkcije, ki prikličejo še več funkcij.
Kot smo že omenili, se program vsakič, ko pokliče funkcijo, med izvajanjem funkcije ustavi. To pomeni, da je program v aktivnem pomnilniku. Če pokličete več funkcij, ne da bi jih dokončali, uporabljate aktivnejši pomnilnik. Če niste previdni, vam lahko program uide izpod nadzora.
Globalne spremenljivke se morda zdijo preproste, vendar so pogosto vzrok za toliko napak. Tukaj je opisano, kako racionalizirajte kodo z enkapsulacijo.
- Programiranje
- Programiranje
- Funkcionalno programiranje

J. Seaton je znanstveni pisatelj, ki je specializiran za razčlenitev zapletenih tem. Doktorirala je na univerzi v Saskatchewanu; njena raziskava se je osredotočila na uporabo iger temelječega učenja za povečanje vključenosti študentov v splet. Ko ne dela, jo boste našli ob branju, igranju video igric ali vrtnarjenju.
Naročite se na naše novice
Pridružite se našemu glasilu za tehnične nasvete, preglede, brezplačne e-knjige in ekskluzivne ponudbe!
Še en korak…!
Potrdite svoj e-poštni naslov v e-poštnem sporočilu, ki smo vam ga pravkar poslali.