На этом шаге рассмотрим рекурсивные функции в Go.
Рекурсивная функция – это функция, вызывающая сама себя, а функции, вызывающие друг друга, называются взаимно рекурсивными. В языке Go имеется полная поддержка рекурсивных функций.
Рекурсивные функции обычно имеют одну и ту же структуру: они включают "точку выхода" и "тело". Точка выхода – обычно условная инструкция, такая как инструкция if, используемая для остановки рекурсии на основе одного из аргументов. Тело – где выполняются основные действия, включая по меньшей мере один вызов самой себя (или парной, взаимно рекурсивной функции), – в этот вызов должен передаваться аргумент со значением, отличным от текущего и который проверяется в условии выхода, чтобы обеспечить завершение рекурсии.
Задание 1. Вычислить первые 40 чисел Фибоначчи (рис.1):
Рис.1. Пример работы приложения
Раскрыть/скрыть решение и комментарии.
На следующем шаге рассмотрим выбор функции во время выполнения в Go.