Sobes.tech
Junior — Middle

Kā var nodot funkciju kā argumentu, lai to izsauktu citas funkcijas iekšienē?

sobes.tech AI

Atbilde no AI

Go funkcijas ir pirmās klases vērtības, tāpēc tās var nodot kā argumentus citām funkcijām.

Piemērs, kā nodot funkciju citai funkcijai:

package main

import "fmt"

// Funkcija, kas pieņem citu funkciju kā argumentu
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) // Izvadīs 7
}

Šeit applyOperation pieņem divus skaitļus un funkciju op, kas definē operāciju ar šiem skaitļiem. main funkcijā nododam anonīmu saskaitīšanas funkciju.

Tātad, lai nodotu funkciju Go, pietiek norādīt argumenta tipu kā func(...) ... un nodot nepieciešamo funkciju izsaukuma laikā.