Vedlejší účinek
Z Wikipedie, otevřené encyklopedie
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 neumyslný. 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.
[editovat] Příklady
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.