¿Se pueden pasar funciones como parámetros en Go?
¡Hola a todos! Acabo de empezar a estudiar Go y tengo una pregunta sobre el trabajo con funciones. En otros lenguajes, como Python o JavaScript, estoy acostumbrado a pasar funciones como argumentos a otras funciones. Esto es muy útil para crear callbacks, manejadores de eventos o implementar estrategias de ordenamiento.
En Go me encontré con que las funciones son una entidad separada. Estoy intentando escribir una función que recibe otra función y la aplica a los elementos de un array, pero el compilador se queja de mi código.
Esto es lo que intento hacer:
```go
package main
import "fmt"
func applyToSlice(s []int, fn func(int) int) []int {
result := make([]int, len(s))
for i, v := range s {
result[i] = fn(v)
}
return result
}
func main() {
nums := []int{1, 2, 3, 4}
// Quiero pasar una función que duplica el número
doubled := applyToSlice(nums, func(x int) int {
return x * 2
})
fmt.Println(doubled)
}
```
Este código funciona, pero yo n