Junior — Middle
Kas saab funktsiooni edastada väärtusena andmestruktuuris map?
sobes.tech AI
Vastus AI-lt
Jah, Go keeles saab funktsioone edasi anda kui väärtusi andmestruktuuris map, kuna funktsioonid on esimese klassi tüübid.
Näide:
package main
import "fmt"
func main() {
// Deklareerime `map`, kus võti on string ja väärtus funktsioon, mis võtab vastu int ja tagastab int
funcMap := make(map[string]func(int) int)
// Lisame funktsioone `map`-ile
funcMap["square"] = func(x int) int { return x * x }
funcMap["double"] = func(x int) int { return x * 2 }
// Kasutame funktsioone `map`-ist
fmt.Println(funcMap["square"](5)) // 25
fmt.Println(funcMap["double"](5)) // 10
}
Nii saab funktsioone map-is salvestada ja nendele viidata võtme abil.