Sobes.tech
Junior — Middle

Башка функциянын ичинде чакыруучу аргумент катары функцияны кантип өткөрсө болот?

sobes.tech AI

AIден жооп

Go'da funksiyalar birinchi 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.