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ą.