Vedlejší účinek

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

V programování pojem vedlejší účinek (angl. side effect) představuje situaci, kdy volaná funkce nebo výpočetní výraz mění i jiný stav procesu, než je návratová hodnota funkce nebo výrazu nebo změna hodnoty parametru odkazovaného přes odkaz referencí.

Vedlejší účinek může být úmyslný nebo neúmyslný. Neúmyslný vedlejší účinek je častým zdrojem mnoha programátorských chyb. Úmyslný vedlejší účinek, pokud se používá přehledně a účelně, může zjednodušit implementaci programového kódu.

Příklady[editovat | editovat zdroj]

Typický případ neúmyslného (chybného) vedlejšího účinku výrazu v jazyce C:

int i = 1;
foo( i++, i );

při volání funkce foo() se jako první argument předává hodnota i, která se následně zvýší o 1 (vedlejší účinek), má se jako druhý argument zapsat hodnota i původní nebo zvýšená o 1? V praxi záleží na konkrétní implementaci překladače jazyka.

Typický případ úmyslného vedlejšího účinku výrazu v jazyce C:

int pocitadlo=0;
 
void foo()
{
	pocitadlo++;
}

při každém volání funkce foo() se zvýší hodnota proměnné počítadlo o 1.