Sobes.tech
Junior — Middle

Czy można przekazać funkcję jako wartość w strukturze danych map?

sobes.tech AI

Odpowiedź od AI

Tak, w Go można przekazywać funkcje jako wartości w strukturze danych map, ponieważ funkcje są typami pierwszej klasy.

Przykład:

package main

import "fmt"

func main() {
    // Deklarujemy mapę, gdzie kluczem jest string, a wartością funkcja przyjmująca int i zwracająca int
    funcMap := make(map[string]func(int) int)

    // Dodajemy funkcje do mapy
    funcMap["square"] = func(x int) int { return x * x }
    funcMap["double"] = func(x int) int { return x * 2 }

    // Używamy funkcji z mapy
    fmt.Println(funcMap["square"](5)) // 25
    fmt.Println(funcMap["double"](5)) // 10
}

W ten sposób można przechowywać i wywoływać funkcje z mapy po kluczu.