Sobes.tech
Junior — Middle

Ar galima perduoti funkciją kaip reikšmę duomenų struktūroje map?

sobes.tech AI

Atsakymas iš AI

Taip, Go kalboje galima perduoti funkcijas kaip reikšmes duomenų struktūroje map, nes funkcijos yra pirmosios klasės tipai.

Pavyzdys:

package main

import "fmt"

func main() {
    // Deklaruojame `map`, kur raktas yra eilutė, o reikšmė – funkcija, priimanti int ir grąžinanti int
    funcMap := make(map[string]func(int) int)

    // Pridedame funkcijas į `map`
    funcMap["square"] = func(x int) int { return x * x }
    funcMap["double"] = func(x int) int { return x * 2 }

    // Naudojame funkcijas iš `map`
    fmt.Println(funcMap["square"](5)) // 25
    fmt.Println(funcMap["double"](5)) // 10
}

Šiuo būdu galima saugoti ir iškviesti funkcijas iš map pagal raktą.