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