Sobes.tech
Junior — Middle

შეიძლება თუ არა Go ენის ფარგლებში ფუნქცია გადმოსცეთ სხვა ფუნქციას როგორც არგუმენტი?

sobes.tech AI

პასუხი AI-სგან

დიახ, Go ენის ფუნქციები პირველი კლასის მნიშვნელობებია, ამიტომ მათ შეიძლება გადაეცეთ სხვა ფუნქციების არგუმენტებად, დაბრუნდეს ფუნქციებიდან და მიენიჭოს ცვლადებს.

ფუნქციის გადაცემის მაგალითი არგუმენტად:

package main
import "fmt"

func applyOperation(a, b int, op func(int, int) int) int {
    return op(a, b)
}

func main() {
    sum := func(x, y int) int { return x + y }
    result := applyOperation(3, 4, sum)
    fmt.Println(result) // გამოიტანს 7
}

ამ გზით, Go მხარს უჭერს ფუნქციონალურ პროგრამირების სტილს ფუნქციების გადაცემით როგორც პარამეტრებით.