Sobes.tech
Junior — Middle

È possibile passare una funzione come valore in una struttura dati map?

sobes.tech AI

Risposta dell'AI

Sì, in Go è possibile passare funzioni come valori in una struttura dati map, poiché le funzioni sono tipi di prima classe.

Esempio:

package main

import "fmt"

func main() {
    // Dichiarare una mappa, dove la chiave è una stringa e il valore è una funzione che accetta un int e ne ritorna uno
    funcMap := make(map[string]func(int) int)

    // Aggiungere funzioni alla mappa
    funcMap["square"] = func(x int) int { return x * x }
    funcMap["double"] = func(x int) int { return x * 2 }

    // Usare le funzioni dalla mappa
    fmt.Println(funcMap["square"](5)) // 25
    fmt.Println(funcMap["double"](5)) // 10
}

In questo modo, si possono memorizzare e chiamare funzioni dalla mappa tramite la chiave.