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.