Sobes.tech
Junior — Middle

Կարող է ֆունկցիան փոխանցել որպես արժեք տվյալների կառուցվածքում map?

sobes.tech AI

Պատասխան AI-ից

Այո, Go լեզվում կարող եք փոխանցել ֆունկցիաներ որպես արժեքներ տվյալների կառուցվածք map-ում, քանի որ ֆունկցիաները առաջին կարգի տիպեր են:

Օրինակ՝

package main

import "fmt"

func main() {
    // Դեկլարենք `map`, որտեղ բանալիքը տող է, իսկ արժեքը ֆունկցիա, որը ընդունում է int և վերադարձնում է int
    funcMap := make(map[string]func(int) int)

    // Ֆունկցիաներ ավելացնում ենք `map`-ին
    funcMap["square"] = func(x int) int { return x * x }
    funcMap["double"] = func(x int) int { return x * 2 }

    // Օգտագործում ենք `map`-ից ֆունկցիաները
    fmt.Println(funcMap["square"](5)) // 25
    fmt.Println(funcMap["double"](5)) // 10
}

Այսպիսով, կարող եք պահել և կանչել ֆունկցիաներ map-ից ըստ բանալիի։