Sobes.tech
Junior — Middle

Kaip galima perduoti funkciją kaip argumentą, kad ją iškviesti kitoje funkcijoje?

sobes.tech AI

Atsakymas iš AI

Go funkcijos yra pirmosios klasės reikšmės, todėl jas galima perduoti kaip argumentus kitoms funkcijoms.

Pavyzdys, kaip perduoti funkciją kitai funkcijai:

package main

import "fmt"

// Funkcija, kuri priima kitą funkciją kaip 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) // Išves 7
}

Čia applyOperation priima du skaičius ir funkciją op, kuri apibrėžia operaciją su šiais skaičiais. main funkcijoje perduodame anonimę sudėjimo funkciją.

Taigi, norint perduoti funkciją Go kalboje, pakanka nurodyti argumento tipą kaip func(...) ... ir perduoti norimą funkciją kviečiant.