Sobes.tech
Junior — Middle

Πώς μπορεί κανείς να περάσει μια λειτουργία ως όρισμα για να κληθεί μέσα σε μια άλλη λειτουργία;

sobes.tech AI

Απάντηση από AI

Στο Go, οι συναρτήσεις είναι τιμές πρώτης κατηγορίας, επομένως μπορούν να περαστούν ως ορίσματα σε άλλες συναρτήσεις.

Παράδειγμα μεταβίβασης μιας συνάρτησης σε μια άλλη:

package main

import "fmt"

// Συνάρτηση που δέχεται μια άλλη συνάρτηση ως όρισμα
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) // Εκτυπώνει 7
}

Εδώ, η applyOperation δέχεται δύο αριθμούς και μια συνάρτηση op, που ορίζει την πράξη πάνω σε αυτούς τους αριθμούς. Στο main, περνάμε μια ανώνυμη συνάρτηση πρόσθεσης.

Έτσι, για να περάσετε μια συνάρτηση στο Go, αρκεί να ορίσετε τον τύπο του ορίσματος ως func(...) ... και να περάσετε τη ζητούμενη συνάρτηση κατά την κλήση.