Sobes.tech
Junior — Middle

Como pode passar uma função como argumento para ser chamada dentro de outra função?

sobes.tech IA

Resposta da IA

Em Go, as funções são valores de primeira classe, pelo que podem ser passadas como argumentos para outras funções.

Exemplo de passar uma função para outra:

package main

import "fmt"

// Função que aceita outra função como argumento
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) // Vai imprimir 7
}

Aqui, applyOperation aceita dois números e uma função op, que define a operação sobre esses números. No main, passamos uma função anónima de soma.

Assim, para passar uma função em Go, basta indicar o tipo de argumento como func(...) ... e passar a função desejada na chamada.