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.