Sobes.tech
Junior — Middle

Μπορείτε να περάσετε μια λειτουργία ως τιμή σε μια δομή δεδομένων map;

sobes.tech AI

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

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

Παράδειγμα:

package main

import "fmt"

func main() {
    // Δηλώνουμε ένα map, όπου το κλειδί είναι μια συμβολοσειρά και η τιμή μια συνάρτηση που δέχεται ένα int και επιστρέφει ένα int
    funcMap := make(map[string]func(int) int)

    // Προσθέτουμε συναρτήσεις στο map
    funcMap["square"] = func(x int) int { return x * x }
    funcMap["double"] = func(x int) int { return x * 2 }

    // Χρησιμοποιούμε τις συναρτήσεις από το map
    fmt.Println(funcMap["square"](5)) // 25
    fmt.Println(funcMap["double"](5)) // 10
}

Έτσι, μπορούμε να αποθηκεύσουμε και να καλέσουμε συναρτήσεις από το map με βάση το κλειδί.