Sobes.tech
Junior — Middle

Kako se funkcija može proslediti kao argument za pozivanje unutar druge funkcije?

sobes.tech АИ

Одговор од АИ

U Go funkcije su vrednosti prve klase, pa ih je moguće proslediti kao argumente drugim funkcijama.

Primer prosleđivanja funkcije drugoj funkciji:

package main

import "fmt"

// Funkcija koja prihvata drugu funkciju kao argument
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) // Ispisaće 7
}

Ovde, applyOperation prihvata dva broja i funkciju op, koja definiše operaciju nad tim brojevima. U main, prosleđujemo anonimnu funkciju sabiranja.

Dakle, da biste prosledili funkciju u Go, dovoljno je da navedete tip argumenta kao func(...) ... i da prilikom poziva prosledite željenu funkciju.