Sobes.tech
Junior — Middle

Jak można przekazać funkcję jako argument do wywołania wewnątrz innej funkcji?

sobes.tech AI

Odpowiedź od AI

W Go funkcje są wartościami pierwszej klasy, dlatego można je przekazywać jako argumenty do innych funkcji.

Przykład przekazywania funkcji do innej funkcji:

package main

import "fmt"

// Funkcja przyjmująca inną funkcję 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) // Wypisze 7
}

Tutaj applyOperation przyjmuje dwie liczby i funkcję op, która określa operację na tych liczbach. W main przekazujemy anonimową funkcję dodawania.

W związku z tym, aby przekazać funkcję w Go, wystarczy określić typ argumentu jako func(...) ... i przekazać odpowiednią funkcję podczas wywołania.