Junior — Middle
Vai funkciju var nodot kā vērtību datu struktūrā map?
sobes.tech AI
Atbilde no AI
Jā, Go valodā var nodot funkcijas kā vērtības datu struktūrā map, jo funkcijas ir pirmās klases tipi.
Piemērs:
package main
import "fmt"
func main() {
// Deklarējam `map`, kur atslēga ir virkne, bet vērtība ir funkcija, kas pieņem int un atgriež int
funcMap := make(map[string]func(int) int)
// Pievienojam funkcijas `map`
funcMap["square"] = func(x int) int { return x * x }
funcMap["double"] = func(x int) int { return x * 2 }
// Izmantojam funkcijas no `map`
fmt.Println(funcMap["square"](5)) // 25
fmt.Println(funcMap["double"](5)) // 10
}
Tādējādi var saglabāt un izsaukt funkcijas no map pēc atslēgas.