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-ից ըստ բանալիի։