Čo je funkcia v programovaní?

Čo je funkcia v programovaní?

Často sa stretávate s kopírovaním a prilepovaním kódu na opätovné použitie v rôznych častiach programu?





Ak je to tak, mali by ste zvážiť použitie funkcií. Funkcie sú veľmi silnou vlastnosťou programovacích jazykov. Vďaka nim môže byť kód efektívnejší, čitateľnejší a elegantnejší.





Čo je to funkcia?

Funkcia je blok kódu, ktorý vykonáva úlohu. Dá sa zavolať a znova použiť viackrát. Informácie môžete odovzdať funkcii a tá môže odosielať informácie späť. Mnoho programovacích jazykov má vstavané funkcie, ku ktorým máte prístup v ich knižnici, ale môžete si vytvárať aj vlastné funkcie.





Keď zavoláte funkciu, program pozastaví aktuálny program a spustí funkciu. Funkcia sa bude čítať zhora nadol. Akonáhle je funkcia dokončená, program pokračuje v prevádzke, kde bol pozastavený. Ak funkcia vrátila hodnotu, táto hodnota sa použije tam, kde bola funkcia volaná.

Ako napíšete funkciu?

Existuje mnoho rôznych spôsobov, ako písať funkcie. Presná syntax bude závisieť od jazyka, v ktorom programujete. Ukážeme príklady v jazyku Python, JavaScript a C ++, aby sme predviedli celý rad syntaxe programovania.



Súvisiace: Prečo programovacie jazyky nemôžu existovať bez funkcií

Prázdne funkcie

Prvý typ funkcie, na ktorý sa pozrieme, je prázdna funkcia. To jednoducho znamená, že funkcia nevracia hodnotu. Na vyplnenie sady pokynov sa používajú prázdne funkcie. V týchto príkladoch sa nazýva funkcia, ktorú sme napísali ahojFunkcia . Účelom tejto funkcie je vydať „Hello World“.





TIP: dajte funkciám názvy, ktoré vysvetlia, čo robia. Keď bude váš program zložitejší, bude jednoduchšie spravovať funkcie a čítať kód.

Python





def helloFunction():
print('Hello World')
helloFunction()

Kľúčové slovo def sa v Pythone používa na definovanie a vytváranie funkcií. Ďalej je názov funkcie. Pokyny v tejto funkcii nasledujú v nasledujúcom riadku za dvojbodkou. Biely priestor je v Pythone dôležitý, preto nezabudnite odsadiť všetok kód, ktorý má vaša funkcia spustiť. Vo vyššie uvedenom príklade funkcia spustí jeden riadok kódu.

Vaše bystré oči si to mohli všimnúť vytlačiť () je tiež funkciou, ale nazýva sa inak ako naša funkcia. Držte sa tejto myšlienky práve teraz, parametre funkcií a parametrov preskúmame neskôr.

JavaScript

previesť obrázok na vektor v ilustrátori
function helloFunction(){
alert('Hello World!');
}
helloFunction();

V JavaScripte je to kľúčové slovo funkciu slúži na vytváranie funkcií. Ďalej tu máme názov funkcie. Akýkoľvek kód, ktorý spadá do zátvoriek, sa spustí pri volaní funkcie.

Prázdne miesto nie je v JavaScripte dôležité, ale je obvyklé, že je kód vo funkcii odsadený. Odsadenie uľahčuje čítanie kódu, čo je veľmi dôležité, pretože vaše programy sú zložitejšie.

Poznámka: Asi ako vytlačiť () v predchádzajúcom prípade, výstraha () je tiež funkcia.

C ++

#include
using namespace std;
void helloFunction(){
cout << 'Hello World!';
}
int main(){
helloFunction();
return 0;
}

Funkcie sa v C ++ vytvárajú odlišne. Namiesto kľúčového slova na definovanie funkcie prvé slovo popisuje typ údajov, ktoré funkcia vráti. V tomto prípade naša funkcia nevracia žiadne údaje, takže údaje sú neplatné. Ďalej tu máme názov funkcie. Podobne ako v prípade JavaScriptu, celý kód medzi zloženými zátvorkami sa spustí pri volaní funkcie. Rovnako ako v prípade JavaScriptu, biely priestor neovplyvňuje funkciu, ale je to osvedčený postup.

Všimli ste si v kóde C ++ inú funkciu? Áno, Hlavná() je funkcia. Keď spustíte program C ++, automaticky vyvoláte hlavnú funkciu. Keď je hlavná funkcia úspešne dokončená, vráti 0, pretože opúšťa program, aby signalizovala, že pri spustení programu nedošlo k žiadnym chybám.

Funkcie, ktoré vyžadujú hodnoty

Prázdne funkcie sú skvelé, ak zistíte, že píšete rovnaký kúsok kódu znova a znova. Ale môžu byť obmedzujúce. Sú statické a nemenia sa. Vždy vyplnia rovnaké pokyny. Jedným zo spôsobov, ako môžeme zvýšiť ich užitočnosť, je odovzdať do funkcie rôzne hodnoty.

Všimli ste si, že zátvorky nasledovali za názvami všetkých našich funkcií. V zátvorkách môžeme vyhlásiť, že údaje sú potrebné na spustenie našej funkcie. Potom môžeme vo funkcii použiť údaje odovzdané našej funkcii. Znova sa pozrime na predchádzajúce príklady, ale tentoraz si dajte frázu, ktorú chceme mať na výstupe.

Python

def helloFunction(newPhrase):
print(newPhrase)
helloFunction('Our new phrase')

Teraz medzi zátvorkami naša funkcia deklaruje, že na spustenie potrebuje premennú. Premennú sme pomenovali nová fráza a teraz ho môžeme použiť v našej funkcii. Keď zavoláme funkciu, musíme odovzdať požadované informácie umiestnením medzi zátvorky. Rovnaké zmeny boli vykonané v JavaScripte.

JavaScript

function helloFunction(newPhrase){
alert(newPhrase);
}
helloFunction('Our new phrase');

C ++

téma Windows 7 pre Windows 8.1
#include
using namespace std;
void helloFunction(string newPhrase){
cout << newPhrase;
}
int main(){
helloFunction('Our new Phrase');
return 0;
}

Naša funkcia C ++ vyžadovala trochu viac informácií. Vieme, že vaša funkcia chce reťazcové údaje, ale to nie je dosť dobré pre C ++. Pri vytváraní funkcie musíte určiť, aký typ údajov vaša funkcia vyžaduje. Ak neodošlete správny typ údajov, funkcia spôsobí chybu.

Môže sa to zdať trochu otravné, ale prísne jazyky vám často môžu ušetriť bolesť hlavy. Ak do JavaScriptu napíšete funkciu, ktorá vyžaduje celé číslo, ale číslo je odoslané ako reťazec, môže vytvoriť chybu, ktorú je veľmi ťažké vystopovať.

Súvisiace: 5 jazykov funkčného programovania, ktoré by ste mali vedieť

Funkcie, ktoré vracajú hodnotu

Posledná schopnosť, ktorou sa budeme zaoberať, je vrátenie údajov. Toto je obzvlášť cenné, ak chcete zmeniť údaje pred ich použitím. Aj keď by ste to mohli napísať vložene, ak budete mnohokrát používať rovnaké výpočty, ako je prevod imperiálnych jednotiek na metrické hodnoty, môže mať zmysel napísať ich ako funkciu. Náš príklad bude jednoduchší. Naša funkcia bude vyžadovať dve celé čísla a vráti súčet.

Python

def addingFunction(a, b):
return a + b
print(addingFunction(2, 4))

V tomto prípade naša funkcia vyžaduje dve premenné namiesto jednej. Naznačujeme to tým, že názvy našich premenných oddeľujeme čiarkou. Kľúčové slovo vrátiť sa hovorí funkcii, aby vrátila nasledujúce údaje, v tomto prípade 2 + 4 alebo 6. Funkciu nazývame vnútri vytlačiť () funkciu.

Akonáhle by sa náš program dostal na tento riadok, pozastavil by sa, spustil by našu funkciu a potom pokračoval ako keby addsFunction (2, 4) bola vlastne iba vrátená hodnota 6.

JavaScript

Kód JavaScript je veľmi podobný kódu Python. Hlavným rozdielom je, že funkcia sa volá v upozornení.

function addingFunction(a, b){
return a + b;
}
alert(addingFunction(2, 4));

C ++

#include
using namespace std;
int addingFunction(int a, int b){
return a + b;
}
int main(){
cout << addingFunction(2, 4) ;
return 0;
}

Kód C ++ beží podobne, ale ako obvykle, vyžaduje trochu viac informácií. Najprv musíme povedať, aký typ údajov naša funkcia vráti. To uvidíte prázdny bol zmenený na int . To znamená, že namiesto toho, aby naša funkcia nevracala žiadne údaje, vráti celé číslo. Okrem toho je kód podobný kódu, ktorý sme už preskúmali.

Spravujte svoje funkcie

Zábavná vec na funkciách je, že funkcie môžu volať iné funkcie. Môžu sa dokonca nazývať! S veľkou mocou však prichádza aj veľká zodpovednosť. Nezbláznite sa z vytvárania kódu s funkciami, ktoré volajú ďalšie funkcie, ktoré volajú ešte viac funkcií.

Ako už bolo spomenuté, pri každom volaní funkcie sa program pozastaví, kým funkciu spustí. To znamená, že program je uložený v aktívnej pamäti. Ak vyvoláte niekoľko ďalších funkcií bez ich dokončenia, používate viac aktívnej pamäte. Ak si nedáte pozor, váš program sa vám môže vymknúť z rúk.

zdieľam zdieľam Tweet E -mail Ako udržať svoj kód čistý so zapuzdrením objektu

Globálne premenné sa môžu zdať jednoduché, ale často sú príčinou toľkých chýb. Tu je postup, ako zefektívniť kód zapuzdrením.

Čítajte ďalej
Súvisiace témy
  • Programovanie
  • Programovanie
  • Funkčné programovanie
O autorovi Jennifer Seaton(21 publikovaných článkov)

J. Seaton je vedecký spisovateľ, ktorý sa špecializuje na delenie zložitých tém. Má doktorát z University of Saskatchewan; jej výskum sa zameral na využitie učenia sa na základe hier na zvýšenie zapojenia študentov online. Keď nepracuje, nájdete ju pri jej čítaní, hraní videohier alebo záhradníctve.

Viac od Jennifer Seaton

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber