Junior — Middle
É possível passar uma função como valor numa estrutura de dados map?
sobes.tech IA
Resposta da IA
Sim, em Go é possível passar funções como valores em uma estrutura de dados map, pois as funções são tipos de primeira classe.
Exemplo:
package main
import "fmt"
func main() {
// Declaramos um map, onde a chave é uma string, e o valor é uma função que aceita um int e retorna um int
funcMap := make(map[string]func(int) int)
// Adicionamos funções ao map
funcMap["square"] = func(x int) int { return x * x }
funcMap["double"] = func(x int) int { return x * 2 }
// Usamos as funções do map
fmt.Println(funcMap["square"](5)) // 25
fmt.Println(funcMap["double"](5)) // 10
}
Dessa forma, é possível armazenar e chamar funções do map usando a chave.