É possível passar funções como parâmetros em Go?
Olá a todos! Comecei a estudar Go recentemente e tenho uma dúvida sobre o trabalho com funções. Em outras linguagens, como Python ou JavaScript, estou acostumado a passar funções como argumentos para outras funções. Isso é muito útil para criar callbacks, manipuladores de eventos ou implementar estratégias de ordenação.
Em Go, percebi que funções são uma entidade separada. Estou tentando escrever uma função que recebe outra função e a aplica aos elementos de um array, mas o compilador reclama do meu código.
Aqui está o que estou tentando fazer:
```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}
// Quero passar uma função que dobra o número
doubled := applyToSlice(nums, func(x int) int {
return x * 2
})
fmt.Println(doubled)
}
```
Esse código funciona, mas eu n