Sobes.tech
Junior — Middle

Jak lze předat funkci jako argument pro volání uvnitř jiné funkce?

sobes.tech AI

Odpověď od AI

V Go jsou funkce hodnotami prvotřídní třídy, takže je lze předávat jako argumenty jiným funkcím.

Příklad předání funkce jiné funkci:

package main

import "fmt"

// Funkce, která přijímá jinou funkci jako 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) // Vytiskne 7
}

Zde applyOperation přijímá dvě čísla a funkci op, která definuje operaci nad těmito čísly. V main předáváme anonymní funkci sčítání.

Tudíž, pro předání funkce v Go, stačí uvést typ argumentu jako func(...) ... a předat požadovanou funkci při volání.