Golang recursividade

Recursividade

A linguagem de programação Golang é conhecida por ser simples, eficiente e trabalhar muito bem com concorrência. Utilizar recursividade não é muito comum em Go, mas em alguns momentos é a melhor solução a ser aplicada.

Recursividade é quando uma função chama ela mesma para chegar no resultado esperado.

Eficiência

Sempre verifique se a solução com recursividade será eficiente devido às várias chamadas executadas.

Alternativas

Sempre verifique a possibilidade de utilizar abordagens iterativas favorecendo a clareza do código.

Código

Abaixo exemplo de contagem regressiva com Go

package main

import "fmt"

func contRegressiva(numero int) {
    if numero >= 0 {
        fmt.Printf("Valor atual: %d\n", numero)
        contRegressiva(numero - 1)
    } else {
        fmt.Print("Finalizado")
    }
}

func main() {
    contRegressiva(10)
}
>> Valor atual: 10
>> Valor atual: 9
>> Valor atual: 8
>> Valor atual: 7
>> Valor atual: 6
>> Valor atual: 5
>> Valor atual: 4
>> Valor atual: 3
>> Valor atual: 2
>> Valor atual: 1
>> Valor atual: 0
>> Finalizado