Kas leiate, et kopeerite ja kleepite oma koodi korduvkasutuseks oma programmi erinevates jaotistes?

Kui jah, võiksite kaaluda funktsioonide kasutamist. Funktsioonid on programmeerimiskeelte väga võimas omadus. Need võivad muuta koodi tõhusamaks, hõlpsamini loetavaks ja elegantsemaks.

Mis on funktsioon?

Funktsioon on koodiplokk, mis täidab ülesannet. Seda võib nimetada ja mitu korda taaskasutatud. Funktsioonile saate teavet edastada ja see võib teavet tagasi saata. Paljudel programmeerimiskeeltel on sisseehitatud funktsioonid, millele saate juurde pääseda nende teegis, kuid saate ka ise funktsioone luua.

Mis on rekursioon ja kuidas seda kasutada?

Õppige rekursiooni põhitõdesid, mis on programmeerijate jaoks hädavajalik, kuid veidi mõistust painutav tööriist.

Funktsiooni kutsumisel peatab programm praeguse programmi ja täidab funktsiooni. Funktsiooni loetakse ülevalt alla. Kui funktsioon on lõpetatud, jätkab programm töötamist seal, kus see oli peatatud. Kui funktsioon tagastas väärtuse, kasutatakse seda väärtust seal, kus funktsiooni kutsuti.

instagram viewer

Kuidas funktsiooni kirjutada?

Funktsioonide kirjutamiseks on palju erinevaid viise. Täpne süntaks sõltub keelest, milles programmeerite. Programmeerimise süntaksivahemiku näitamiseks näitame Pythoni, JavaScripti ja C ++ näiteid.

Seotud: Miks ei saa keelte programmeerimine toimida ilma funktsioonideta

Tühised funktsioonid

Esimene funktsioonide tüüp, mida me vaatame, on tühine funktsioon. See tähendab lihtsalt, et funktsioon ei tagasta väärtust. Tühjuse funktsioone kasutatakse juhiste komplekti täitmiseks. Nendes näidetes nimetatakse meie kirjutatud funktsiooni tere Funktsioon. Funktsiooni eesmärk on väljastada "Hello World".

NÕUANNE: andke funktsioonidele nimed, mis selgitavad nende tegevust. Funktsioonide haldamine ja koodi lugemine on lihtsam, kui teie programm muutub keerukamaks.

Python

def tere Funktsioon ():
print ("Tere maailm")
tere Funktsioon ()

Märksõna def kasutatakse Pythonis funktsiooni määratlemiseks ja loomiseks. Järgmine on funktsiooni nimi. Funktsiooni juhised järgnevad koolonijärgsele reale. Püütonis on oluline tühimik, seega sisestage kindlasti kogu kood, mille soovite funktsiooni käivitada. Ülaltoodud näites käivitab funktsioon ühe koodirea.

Teie teravad silmad võisid seda märganud print () on ka funktsioon, kuid seda nimetatakse erinevalt kui meie funktsiooni. Hoidke sellest mõttest kohe kinni, uurime funktsioonide parameetreid hiljem.

JavaScripti

funktsioon helloFunction () {
hoiatus ("Tere maailm!");
}
tere Funktsioon ();

JavaScripti puhul märksõna funktsioon kasutatakse funktsioonide loomiseks. Järgmisena on meil funktsiooni nimi. Funktsiooni kutsumisel käivitatakse kõik lokkisulgude vahele jäävad koodid.

Tühik ei ole JavaScriptis oluline, kuid kombineeritakse koodi taandumist funktsioonis. Taane muudab koodi hõlpsamini loetavaks, mis on teie programmide keerukamaks muutudes väga oluline.

Märkus: Palju nagu print () varasemas näites hoiatus () on ka funktsioon.

C ++

# kaasata 
nimeruumi kasutamine std;
void helloFunction () {
cout << "Tere maailm!";
}
int main () {
tere Funktsioon ();
tagastus 0;
}

Funktsioonid luuakse C ++ -s erinevalt. Funktsiooni määratlemiseks mõeldud märksõna asemel kirjeldab esimene sõna seda tüüpi andmeid, mille funktsioon tagastab. Sellisel juhul ei tagasta meie funktsioon andmeid, mistõttu andmed on tühised. Järgmisena on meil funktsiooni nimi. Sarnaselt JavaScriptile käivitatakse funktsiooni kutsumisel kogu lokkisulgudes olev kood. Samuti ei mõjuta tühimärk sarnaselt JavaScripti funktsiooni, kuid on hea tava.

Kas märkisite C ++ koodis veel ühe funktsiooni? Jah, peamine () on funktsioon. C ++ programmi käivitamisel helistate automaatselt põhifunktsioonile. Kui põhifunktsioon on edukalt lõpule viidud, naaseb see programmist väljumisel 0, andes märku, et programmi käivitamisel pole vigu.

Väärtusi nõudvad funktsioonid

Tühjad funktsioonid on suurepärased, kui leiate, et kirjutate ikka ja jälle sama koodibitti. Kuid need võivad olla piiravad. Need on staatilised ja ei muutu. Nad täidavad alati samu juhiseid. Üks võimalus nende kasulikkust suurendada on erinevate funktsioonide väärtuste edastamine.

Olete märganud, et sulgudes järgiti kõigi meie funktsioonide nimesid. Sulgudes võime deklareerida, et meie funktsiooni käitamiseks on vaja andmeid. Siis saame funktsioonis oma funktsioonile edastatud andmeid kasutada. Vaatame uuesti eelmisi näiteid, kuid seekord edastage fraas, et me tahame, et meid väljastatakse.

Python

def helloFunction (newPhrase):
print (newPhrase)
helloFunction ("Meie uus fraas")

Nüüd kinnitab sulgude vahel meie funktsioon, et selle käivitamiseks on vaja muutujat. Oleme muutujale nime andnud newPhrase ja saavad seda nüüd oma funktsioonis kasutada. Funktsioonile helistades peame taotletud teabe edastama, asetades selle sulgude vahele. Samad muudatused tehti ka JavaScriptis.

JavaScripti

funktsioon helloFunction (newPhrase) {
alarm (newPhrase);
}
helloFunction ("Meie uus fraas");

C ++

# kaasata 
nimeruumi kasutamine std;
void helloFunction (string newPhrase) {
cout << newPhrase;
}
int main () {
helloFunction ("Meie uus fraas");
tagastus 0;
}

Meie funktsioon C ++ nõudis natuke rohkem teavet. Me teame, et teie funktsioon soovib stringiandmeid, kuid see pole C ++ jaoks piisavalt hea. Funktsiooni loomisel peate määrama, millist tüüpi andmeid teie funktsioon nõuab. Kui te ei saada õiget tüüpi andmeid, loob funktsioon tõrke.

See võib tunduda veidi tüütu, kuid ranged keeled võivad sageli peavalu säästa. Kui kirjutate JavaScripti funktsiooni, mis nõuab täisarvu, kuid number saadetakse stringina, võib see luua vea, mida on väga raske leida.

Seotud: 5 funktsionaalset programmeerimiskeelt, mida peaksite teadma

Funktsioonid, mis tagastavad väärtuse

Lõplik funktsioonivõime, mida me kajastame, on andmete tagastamine. See on eriti väärtuslik, kui soovite andmeid enne nende kasutamist muuta. Ehkki võite kirjutada selle tekstisisese tekstina, võib mõttekas kirjutada see funktsioonina, kui kasutate samu arvutusi mitu korda, näiteks konverteerige imperiaal metrikaks. Meie näide on lihtsam. Meie funktsioon nõuab kahte täisarvu ja tagastab summa.

Python

def lisamine Funktsioon (a, b):
tagastage a + b
print (lisades Funktsioon (2, 4))

Selles näites nõuab meie funktsioon ühe asemel kahte muutujat. Selle näitame eraldades muutujate nimed komaga. Märksõna tagasi käsib funktsioonil tagastada järgmised andmed, antud juhul 2 + 4 või 6. Nimetame funktsiooni sees print () funktsioon.

Kui meie programm selle reani jõudis, oleks see peatunud, meie funktsiooni käivitanud ja siis jätkanud justkui lisades Funktsioon (2, 4) oli tegelikult lihtsalt tagastatud väärtus 6.

JavaScripti

JavaScripti kood on väga sarnane Pythoni koodiga. Peamine erinevus on see, et funktsioon kutsutakse hoiatuses.

funktsioon addFunction (a, b) {
tagastage a + b;
}
alarm (lisadesFunction (2, 4));

C ++

# kaasata 
nimeruumi kasutamine std;
int lisamisfunktsioon (int a, int b) {
tagastage a + b;
}
int main () {
cout << lisades Funktsioon (2, 4);
tagastus 0;
}

C ++ kood töötab sarnaselt, kuid nagu tavaliselt, nõuab see veidi rohkem teavet. Esiteks peame ütlema, mis tüüpi andmeid meie funktsioon tagastab. Sa näed seda tühine on muudetud int. See tähendab, et andmete tagastamise asemel tagastab meie funktsioon täisarv. Peale selle on kood sarnane juba uuritud koodiga.

Hallake oma funktsioone

Funktsioonide puhul on tore see, et funktsioonid võivad kutsuda muid funktsioone. Nad võivad end isegi kutsuda! Kuid suure jõuga kaasneb suur vastutus. Ärge hulluks looge koodi funktsioonidega, mis kutsuvad teisi funktsioone, mis kutsuvad veel rohkem funktsioone.

Nagu mainitud, peatub programm iga kord, kui funktsiooni kutsutakse, funktsiooni käitamise ajal. See tähendab, et programmi hoitakse aktiivses mälus. Kui helistate veel mitmele funktsioonile neid täitmata, kasutate aktiivsemat mälu. Kui te pole ettevaatlik, võib teie programm käest ära minna.

E-post
Kuidas hoida oma kood puhtana objektide kapseldamise abil

Globaalsed muutujad võivad tunduda lihtsad, kuid sageli põhjustavad need nii palju vigu. Koodi hõlbustamiseks kapseldamise abil saate teha järgmist.

Seotud teemad
  • Programmeerimine
  • Programmeerimine
  • Funktsionaalne programmeerimine
Autori kohta
Jennifer Seaton (20 artiklit avaldatud)

J. Seaton on teaduskirjanik, kes on spetsialiseerunud keeruliste teemade lagundamisele. Tal on doktorikraad Saskatchewani ülikoolist; tema uurimistöö keskendus mängupõhise õppe kasutamisele õpilaste sidususe suurendamiseks veebis. Kui ta ei tööta, leiate ta koos oma lugemise, videomängude mängimise või aiatööga.

Veel Jennifer Seatonilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, kus leiate tehnilisi näpunäiteid, ülevaateid, tasuta e-raamatuid ja eksklusiivseid pakkumisi!

Veel üks samm !!!

Palun kinnitage oma e-posti aadress meilis, mille me just saatsime.

.