Sobes.tech
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.