Funkce (programování)

Z Wikipedie, otevřené encyklopedie

V programování je funkce část programu, kterou je možné opakovaně volat z různých míst kódu. Funkce může mít argumenty (též parametry) – údaje, které jí jsou předávány při volání – a návratovou hodnotu, kterou naopak vrací.

Na rozdíl od funkce v matematice nemusí výsledek funkce v programu záviset jen na jejích argumentech – v průběhu svého běhu může samostatně získávat data z paměti nebo jiných vstupů a provádět i výstupní operace, takže návratová hodnota zdaleka nemusí být jejím jediným výsledkem (viz vedlejší účinek) a funkce také nemusí mít žádné formální parametry (typ. funkce vracející hodnotu stisknuté klávesy). Často nemusí funkce vracet žádnou hodnotu, potom se taková funkce může nazývat procedurou.

V objektově orientovaném programování se funkce náležející nějaké třídě nazývají metodami.

[editovat] Argumenty funkce

  • formální argumenty (parametry) - udává jakého datového typu a počtu jsou jednotlivé argumenty funkce, některé programovací jazyky umožňují deklarovat funkce s proměným počtem parametrů
  • skutečné argumenty (parametry) - jsou to skutečné argumenty (výrazy) uvedené při volání funkce

[editovat] Předávání argumentů

volání hodnotou (call by value)
volající provede vyhodnocení výrazu který je zadán jako argument funkce a výslednou hodnotu předá do volané funkce
volání odkazem (call by reference)
volající předá v argumentu funkce ukazatel nebo referenci na proměnou. Funkce může obsah této proměnné nejen číst, ale i modifikovat její obsah (viz vedlejší účinek). Často se pole jako argument funkce předává pomocí volání odkazem
volání jménem (call by name)
výraz v argumentu funkce se nevyhodnocuje a předá se do funkce tak jak je. Proto se ve funkci může tento argument vyhodnocovat vícekrát. Nejčastější použití je u symbolických maker