Pasar Funciones como Argumentos
Otra característica útil es la capacidad de pasar funciones como argumentos a otras funciones.
Como recordatorio, la sintaxis fundamental de una función con parámetros es la siguiente:
func myFunc(param1 datatype, param2 datatype, ...) optional_return_type {
// Code
// Optional return statement
}
Utilizamos la siguiente sintaxis para especificar el tipo de dato del parámetro al pasarlo a una función:
func(datatype, datatype, …) return_datatype
La palabra clave func es seguida por los tipos de datos de los parámetros de esa función, separados por comas y entre paréntesis. Además, se especifica el tipo de dato de retorno para la función o conjunto de funciones esperadas, si corresponde.
Un ejemplo puede ayudar a ilustrar este concepto:
index.go
12345678910111213141516package main import "fmt" func nTimes(n int, msg string) { for i := 0; i < n; i++ { fmt.Println(msg) } } func printFiveTimes(msg string, show func(int, string)) { show(5, "Hello World") } func main() { printFiveTimes("HelloWorld", nTimes) }
En el ejemplo anterior, se pasa una función llamada nTimes como argumento a la función printFiveTimes. El tipo de dato para el parámetro show en la definición de la función printFiveTimes es func(int, string), que corresponde a la definición de la función nTimes, es decir, nTimes(n int, msg string).
Ahora, se presenta un ejemplo de una función con valor de retorno:
index.go
1234567891011121314151617181920package main import "fmt" // A factorial is the product of all the numbers from 1 up till n // For-example factorial of 5 is 1x2x3x4x5, which is 120 func factorial(n int) int { var result int = 1; for i := 2; i <= n; i++ { result *= i } return result } func eval(n int, oper func(int) int) int { return oper(n) } func main() { fmt.Println(eval(5, factorial)) }
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Can you show me the example with a return value?
Can you explain how to define a function type with a return value?
What are some common use cases for passing functions as arguments?
Awesome!
Completion rate improved to 1.96
Pasar Funciones como Argumentos
Desliza para mostrar el menú
Otra característica útil es la capacidad de pasar funciones como argumentos a otras funciones.
Como recordatorio, la sintaxis fundamental de una función con parámetros es la siguiente:
func myFunc(param1 datatype, param2 datatype, ...) optional_return_type {
// Code
// Optional return statement
}
Utilizamos la siguiente sintaxis para especificar el tipo de dato del parámetro al pasarlo a una función:
func(datatype, datatype, …) return_datatype
La palabra clave func es seguida por los tipos de datos de los parámetros de esa función, separados por comas y entre paréntesis. Además, se especifica el tipo de dato de retorno para la función o conjunto de funciones esperadas, si corresponde.
Un ejemplo puede ayudar a ilustrar este concepto:
index.go
12345678910111213141516package main import "fmt" func nTimes(n int, msg string) { for i := 0; i < n; i++ { fmt.Println(msg) } } func printFiveTimes(msg string, show func(int, string)) { show(5, "Hello World") } func main() { printFiveTimes("HelloWorld", nTimes) }
En el ejemplo anterior, se pasa una función llamada nTimes como argumento a la función printFiveTimes. El tipo de dato para el parámetro show en la definición de la función printFiveTimes es func(int, string), que corresponde a la definición de la función nTimes, es decir, nTimes(n int, msg string).
Ahora, se presenta un ejemplo de una función con valor de retorno:
index.go
1234567891011121314151617181920package main import "fmt" // A factorial is the product of all the numbers from 1 up till n // For-example factorial of 5 is 1x2x3x4x5, which is 120 func factorial(n int) int { var result int = 1; for i := 2; i <= n; i++ { result *= i } return result } func eval(n int, oper func(int) int) int { return oper(n) } func main() { fmt.Println(eval(5, factorial)) }
¡Gracias por tus comentarios!