Avatar ·

¿Se pueden pasar funciones como parámetros en Go?

¡Hola a todos! Acabo de empezar a aprender Go y tengo una pregunta. Estoy acostumbrado a lenguajes donde las funciones se pueden pasar como argumentos a otras funciones (por ejemplo, en JavaScript o Python). Pero en Go no estoy seguro de si es posible. Intenté escribir una calculadora simple que aceptara una operación (suma, resta) como parámetro, pero no funcionó. Esto es lo que probé: ```go package main import "fmt" func add(a, b int) int { return a + b } func subtract(a, b int) int { return a - b } func calculate(a, b int, op func(int, int) int) int { return op(a, b) } func main() { result := calculate(10, 5, add) fmt.Println(result) } ``` El código compila y funciona, pero no estoy seguro de que sea la sintaxis correcta. ¿Por qué es necesario escribir `func(int, int) int`? ¿Es algo mágico? ¿Y se pueden pasar funciones con diferentes firmas? Por ejemplo, ¿una función que tome tres argumentos? Por favor, explíquenme cómo funciona esto en Go y si hay alguna