Sobes.tech
Junior — Middle

Ako môžete odovzdať funkciu ako argument na volanie vnútri inej funkcie?

sobes.tech AI

Odpoveď od AI

V Go sú funkcie hodnotami prvej triedy, takže ich možno odovzdávať ako argumenty iným funkciám.

Príklad odovzdania funkcie inej funkcii:

package main

import "fmt"

// Funkcia, ktorá prijíma inú funkciu ako 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) // Vytlačí 7
}

Tu applyOperation prijíma dve čísla a funkciu op, ktorá definuje operáciu nad týmito číslami. V main odovzdávame anonymnú funkciu sčítania.

Týmto spôsobom, na odovzdanie funkcie v Go, stačí špecifikovať typ argumentu ako func(...) ... a odovzdať požadovanú funkciu pri volaní.