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 με βάση το κλειδί.