Оптимизирует ли компилятор Go хвостовую рекурсию (tail call optimization)?
Уровень: Senior
Ответ
Нет, компилятор Go не гарантирует оптимизацию хвостовых вызовов. Рекурсивные функции не преобразуются автоматически в циклы, поэтому чрезмерно глубокая рекурсия может привести к переполнению стека. При необходимости приходится преобразовывать хвостовую рекурсию в итерацию вручную.