Skip to main content

Co je to rekurze ocasu?

Ocasní rekurze je typ volání metody programování, kde se metoda volá sama, a poté okamžitě vrátí hodnotu druhého hovoru.Jinými slovy, dochází k rekurzi ocasu, když je konečné příkaz uvnitř metody další volání stejné metody.Parametry ve druhém volání metody se obecně liší od parametrů prvního, ale to není nutné.Aby tato rekurze mohla fungovat, musí metoda, která se vyvolává v sobě, vrátit konkrétní hodnotu, jako je číslo, řetězec nebo nějaký jiný objekt.Metody neplatných, které nevrátí hodnotu, nefungují pro rekurzi dobře.Správné volání ocasu rekurze lze také nalézt uvnitř kontrolní struktury, což znamená, že ve zdrojovém kódu může řídicí struktura metoda ukončit spíše než volání.Důležitým rozlišením v tomto případě je, že kontrolní struktura není programovací prohlášení, ale vestavěnou součástí počítačového jazyka.

Rekurze ocasu existuje v mnoha počítačových jazycích, včetně Java a C ++.Tato rekurzivní volání lze často přepsat pomocí jiných prostředků, například pro smyčky, zatímco smyčky nebo příkazy Goto.Užitečnost rekurze se nachází při vytváření mnoha sekvenčních hovorů stejnou metodu.Rekurze je často nejčistší a nejjednodušší způsob, jak splnit opakující se úkoly.Tento proces je ideální, protože počínaje libovolným číslem je každé číslo před tím, než se vynásobí dohromady.Takže, abych našel faktor 5, správným procesem, který by to udělal, by bylo vynásobit 5*4*3*2*1.Rekurze přichází kvůli tomu, jak je faktoriální metoda strukturována: Pokud je faktor 1, vrátí 1, jinak vraťte faktor čísla daného metodě mínus jedna.Tato metoda je také užitečná, protože může být ekvivalentně psána pomocí obou typu rekurze ocasu, s nebo bez kontrolního příkazu kolem konečného volání metody.

rekurze ocasu je pouze jedním příkladem více typů rekurze.Koncept ve všech typech rekurze je v podstatě stejný, že se v určitém způsobem volá metoda.Z těchto typů je rozlišení rekurze ocasu to, že hodnota rekurzivního hovoru je okamžitě vrácena a po tomto hovoru se nic nestane v metodě volání.