Sobes.tech
Junior — Middle

Se poate transmite o funcție ca valoare într-o structură de date map?

sobes.tech AI

Răspuns de la AI

Da, în Go se pot transmite funcții ca valori într-o structură de date map, deoarece funcțiile sunt tipuri de primă clasă.

Exemplu:

package main

import "fmt"

func main() {
    // Declarăm un map, unde cheia este un string, iar valoarea este o funcție care acceptă un int și returnează un int
    funcMap := make(map[string]func(int) int)

    // Adăugăm funcții în map
    funcMap["square"] = func(x int) int { return x * x }
    funcMap["double"] = func(x int) int { return x * 2 }

    // Folosim funcțiile din map
    fmt.Println(funcMap["square"](5)) // 25
    fmt.Println(funcMap["double"](5)) // 10
}

Astfel, se pot stoca și apela funcții din map după cheie.