Často se vám zdá, že kopírujete a vkládáte svůj kód k opětovnému použití v různých částech vašeho programu?

Pokud ano, možná budete chtít zvážit použití funkcí. Funkce jsou velmi výkonnou funkcí programovacích jazyků. Umožní efektivnější, snáze čitelný a elegantní kód.

Co je funkce?

Funkce je blok kódu, který provádí úkol. Dá se to nazvat a opakovaně použito. Můžete předat informace funkci a ta může odeslat informace zpět. Mnoho programovacích jazyků má vestavěné funkce, ke kterým máte přístup v jejich knihovně, ale můžete si také vytvořit vlastní funkce.

Co je rekurze a jak ji používáte?

Naučte se základy rekurze, základní, ale pro programátory mírně ohýbající nástroj.

Když zavoláte funkci, program pozastaví aktuální program a provede funkci. Funkce bude čtena shora dolů. Po dokončení funkce program pokračuje tam, kde byl pozastaven. Pokud funkce vrátila hodnotu, použije se tato hodnota tam, kde byla funkce volána.

Jak píšete funkci?

Existuje mnoho různých způsobů psaní funkcí. Přesná syntaxe bude záviset na jazyce, ve kterém programujete. Ukážeme příklady v Pythonu, JavaScriptu a C ++, abychom předvedli řadu syntaxe programování.

instagram viewer

Příbuzný: Proč programovací jazyky nemohou existovat bez funkcí

Prázdné funkce

Prvním typem funkce, na kterou se podíváme, je neplatná funkce. To jednoduše znamená, že funkce nevrací hodnotu. Funkce Void se používají k dokončení sady pokynů. V těchto příkladech se nazývá funkce, kterou jsme napsali ahoj funkce. Účelem této funkce je výstup „Hello World“.

TIP: pojmenujte funkce, které vysvětlují, co dělají. Správa a čtení kódu bude snazší, až se váš program stane složitějším.

Krajta

def helloFunction ():
tisk („Hello World“)
ahoj funkce ()

Klíčové slovo def se v Pythonu používá k definování a vytvoření funkce. Dále je název funkce. Pokyny ve funkci následují na dalším řádku za dvojtečkou. Na mezerách v Pythonu záleží, takže nezapomeňte odsadit veškerý kód, který má vaše funkce běžet. Ve výše uvedeném příkladu funkce spustí jeden řádek kódu.

Vaše bystré oči si toho možná všimly tisk() je také funkce, ale nazývá se to jinak než naše funkce. Držte se této myšlenky právě teď, prozkoumáme funkce budoucích parametrů později.

JavaScript

funkce helloFunction () {
upozornění („Hello World!“);
}
helloFunction ();

V JavaScriptu klíčové slovo funkce se používá k vytváření funkcí. Dále máme název funkce. Při volání funkce se spustí jakýkoli kód, který spadá mezi složené závorky.

Prázdné místo není v JavaScriptu důležité, ale je obvyklé odsadit kód ve funkci. Odsazení usnadňuje čtení kódu, což je velmi důležité, protože vaše programy se stávají složitějšími.

Poznámka: Stejně jako tisk() v předchozím příkladu výstraha () je také funkce.

C ++

#zahrnout 
pomocí jmenného prostoru std;
void helloFunction () {
cout << "Ahoj světe!";
}
int main () {
helloFunction ();
návrat 0;
}

Funkce jsou v C ++ vytvořeny odlišně. Místo klíčového slova k definování funkce popisuje první slovo typ dat, která funkce vrátí. V tomto případě naše funkce nevrací žádná data, takže data jsou neplatná. Dále máme název funkce. Podobně jako u JavaScriptu se celý kód mezi složenými závorkami spouští při volání funkce. Podobně jako v případě JavaScriptu bílý prostor neovlivňuje funkci, ale je dobrým zvykem.

Zjistili jste v kódu C ++ jinou funkci? Ano, hlavní() je funkce. Když spustíte program v C ++, automaticky zavoláte hlavní funkci. Když je hlavní funkce úspěšně dokončena, vrací 0, když opouští program, aby signalizovala, že při spuštění programu nedošlo k žádným chybám.

Funkce, které vyžadují hodnoty

Funkce Void jsou skvělé, pokud zjistíte, že píšete stále stejný bit kódu. Ale mohou být omezující. Jsou statické a nemění se. Vždy plní stejné pokyny. Jedním ze způsobů, jak můžeme zvýšit jejich užitečnost, je předat funkci různé hodnoty.

Určitě jste si všimli, že závorky následovaly za názvy všech našich funkcí. V závorkách můžeme deklarovat, že ke spuštění naší funkce jsou potřebná data. Pak můžeme ve funkci použít data předaná naší funkci. Podívejme se znovu na předchozí příklady, ale tentokrát předejme frázi, kterou chceme mít na výstupu.

Krajta

def helloFunction (newPhrase):
tisk (newPhrase)
helloFunction ("Naše nová fráze")

Nyní mezi závorkami naše funkce deklaruje, že ke spuštění potřebuje proměnnou. Pojmenovali jsme proměnnou novýFráze a nyní ji můžeme použít v naší funkci. Když funkci zavoláme, potřebujeme předat požadované informace umístěním mezi závorky. Stejné změny byly provedeny v JavaScriptu.

JavaScript

funkce helloFunction (newPhrase) {
upozornění (newPhrase);
}
helloFunction ("Naše nová fráze");

C ++

#zahrnout 
pomocí jmenného prostoru std;
void helloFunction (řetězec newPhrase) {
cout << newPhrase;
}
int main () {
helloFunction ("Naše nová fráze");
návrat 0;
}

Naše funkce C ++ vyžadovala trochu více informací. Víme, že vaše funkce chce data řetězce, ale to pro C ++ není dost dobré. Při vytváření funkce musíte určit, jaký typ dat vaše funkce vyžaduje. Pokud nepošlete správný typ dat, funkce vytvoří chybu.

Může se to zdát trochu otravné, ale přísné jazyky vám často mohou bolet hlavy. Pokud v JavaScriptu napíšete funkci, která vyžaduje celé číslo, ale číslo se odešle jako řetězec, může to vytvořit chybu, kterou je velmi těžké vypátrat.

Příbuzný: 5 jazyků funkčního programování, které byste měli znát

Funkce, které vracejí hodnotu

Konečnou funkcí, kterou pokryjeme, je vrácení dat. To je zvláště cenné, když chcete změnit data, než je použijete. Ačkoli byste mohli napsat tento řádek, pokud budete mnohokrát používat stejné výpočty, jako je převod imperiální na metrickou, může mít větší smysl ji psát jako funkci. Náš příklad bude jednodušší. Naše funkce bude vyžadovat dvě celá čísla a vrátí součet.

Krajta

def přidání funkce (a, b):
vrátit a + b
tisk (přidání funkce (2, 4))

V tomto příkladu naše funkce vyžaduje místo jedné dvě proměnné. Naznačujeme to oddělením jmen proměnných čárkou. Klíčové slovo vrátit se řekne funkci, aby vrátila následující data, v tomto případě 2 + 4 nebo 6. Říkáme funkci uvnitř tisk() funkce.

Jakmile se náš program dostal na ten řádek, zastavil by se, spustil naši funkci a pak pokračoval, jako by přidání funkce (2, 4) byla ve skutečnosti jen vrácená hodnota 6.

JavaScript

Kód JavaScript je velmi podobný kódu Pythonu. Primární rozdíl spočívá v tom, že funkce je volána v upozornění.

funkce přidání funkce (a, b) {
návrat a + b;
}
výstraha (přidání funkce (2, 4));

C ++

#zahrnout 
pomocí jmenného prostoru std;
int přidáníFunkce (int a, int b) {
návrat a + b;
}
int main () {
cout << addingFunction (2, 4);
návrat 0;
}

C ++ kód běží podobně, ale jako obvykle vyžaduje trochu více informací. Nejprve musíme říci, jaký typ dat naše funkce vrátí. Uvidíte to prázdnota bylo změněno na int. To znamená, že namísto vracení žádných dat vrátí naše funkce celé číslo. Kromě toho je kód podobný kódu, který jsme již prozkoumali.

Spravujte své funkce

Zábavná věc na funkcích je, že funkce mohou volat jiné funkce. Mohou si dokonce říkat! Ale s velkou mocí přichází velká odpovědnost. Nezblázněte se při vytváření kódu pomocí funkcí, které volají jiné funkce, které volají ještě více funkcí.

Jak již bylo zmíněno, pokaždé, když je funkce vyvolána, program se zastaví, když ji spustí. To znamená, že program je držen v aktivní paměti. Pokud zavoláte několik dalších funkcí bez jejich dokončení, využíváte více aktivní paměti. Pokud si nedáte pozor, může se vám program vymknout z rukou.

E-mailem
Jak udržovat váš kód čistý pomocí zapouzdření objektů

Globální proměnné se mohou zdát jednoduché, ale často jsou příčinou tolika chyb. Zde je návod, jak zefektivnit váš kód zapouzdřením.

Související témata
  • Programování
  • Programování
  • Funkcionální programování
O autorovi
Jennifer Seaton (20 článků publikováno)

J. Seaton je autor vědy, který se specializuje na členění složitých témat. Má doktorát z University of Saskatchewan; její výzkum se zaměřil na využití herního učení ke zvýšení zapojení studentů online. Když nepracuje, najdete ji, jak čte, hraje videohry nebo pracuje na zahradě.

Více od Jennifer Seaton

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!

Ještě jeden krok…!

V e-mailu, který jsme vám právě poslali, potvrďte svou e-mailovou adresu.

.