Sobes.tech
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.