Función anónima recursiva en Golang

La recursión es un proceso en el que una función se llama a sí misma implícita o explícitamente y la función correspondiente se llama función recursiva. El lenguaje Go admite una característica especial llamada función anónima . Es una función que no contiene ningún nombre. Se utiliza para crear una función en línea. Las funciones recursivas también se pueden declarar y definir como anónimas. Una función anónima recursiva también se conoce como literal de función recursiva .

Sintaxis:

func(parameter-list)(return-type){
// code..
// call same function
// within the function
// for recursion
// Use return statement only
// if return-type are given.
return
}()

Ejemplo:

// Golang program to show
// how to create an recursive
// Anonymous function
package main
  
import "fmt"
  
func main() {
  
    // Anonymous function
    var recursiveAnonymous func()
    recursiveAnonymous = func() {
      
        // Printing message to show the
        // function call and iteration.
        fmt.Println("Anonymous functions could be recursive.")
          
        // Calling same function 
        // recursively
        recursiveAnonymous()
  
    }
      
    // Main calling of
    // the function
    recursiveAnonymous()
  
}

Producción:

Anonymous functions could be recursive.
Anonymous functions could be recursive.
Anonymous functions could be recursive.
Anonymous functions could be recursive.
.
.
.
.
Infinite times function calls.

Ejemplo 2:

// Golang program to show
// how to create an recursive
// Anonymous function
package main
  
import (
    "fmt"
)
  
func main() {
  
    // Anonymous function
    var recursiveAnonymous func(int)
      
    // Passing arguments
    // to Anonymous function
    recursiveAnonymous = func(variable int) {
      
        // Checking condition
        // to return
        if variable == -1 {
          
            fmt.Println("Welcome to Geeks for Geeks!")
            return
        } else {
          
            fmt.Println(variable)
              
            // Calling same
            // function recursively
            recursiveAnonymous(variable - 1)
        }
    }
      
    // Main calling
    // of the function
    recursiveAnonymous(10)
}

Producción:

10
9
8
7
6
5
4
3
2
1
0
Welcome to Geeks for Geeks!

Publicación traducida automáticamente

Artículo escrito por shivamraj74 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *