Sobes.tech
Junior — Middle

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

sobes.tech AI

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

Go'da funksiyalar birinci dərəcəli qiymətlərdir, ona görə də onları digər funksiyalara arqument kimi keçirmək mümkündür.

Bir funksiyanı başqa bir funksiyaya keçirmənin nümunəsi:

package main

import "fmt"

// Başqa bir funksiyanı arqument kimi qəbul edən funksiya
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 çap edir
}

Burada, applyOperation iki ədəd və bu ədədlər üzərində əməliyyatı müəyyən edən op funksiyasını qəbul edir. main funksiyasında isə toplama funksiyası anonim olaraq verilir.

Beləliklə, Go'da funksiyanı keçirmək üçün arqument tipini func(...) ... kimi göstərmək və çağırış zamanı lazım olan funksiyanı keçirmək kifayətdir.