Die Zuordnung von Funktionen zu Zeichenfolgentasten kann ein nützliches Werkzeug zum Organisieren und Auswählen von Methoden in Go sein. Eine häufige Hürde besteht jedoch darin, die richtige Syntax und Eingabe sicherzustellen. Lassen Sie uns untersuchen, wie Sie eine Zuordnung von Funktionen in Go effektiv definieren und nutzen.
Der bereitgestellte Code versucht, eine Zuordnung mit einem Zeichenfolgenschlüssel zu erstellen, der auf eine Funktion zeigt. Allerdings ist die in m := map[string] func {...} verwendete Syntax falsch. Um eine Zuordnung von Funktionszeigern zu definieren, lautet die korrekte Syntax m := map[string]interface{}{...}.
Außerdem ist die Verwendung von einfachen Anführungszeichen '' für Zuordnungsschlüssel nicht zulässig. Für Zeichenfolgenschlüssel sollten doppelte Anführungszeichen „“ verwendet werden.
Um ein funktionierendes Beispiel zu demonstrieren, betrachten Sie den folgenden Code:
package main import "fmt" func f(p string) { fmt.Println("function f parameter:", p) } func g(p string, q int) { fmt.Println("function g parameters:", p, q) } func main() { m := map[string]interface{}{ "f": f, "g": g, } for k, v := range m { switch k { case "f": v.(func(string))("astring") case "g": v.(func(string, int))("astring", 42) } } }
Hier wird eine Karte m erstellt, wobei jeder Schlüssel a ist Zeichenfolge, und der entsprechende Wert ist ein Funktionszeiger. Die Switch-Anweisung prüft den Schlüssel und wandelt den Wert in den entsprechenden Funktionstyp um, bevor die Funktion mit den gewünschten Parametern aufgerufen wird. Dieser Ansatz ermöglicht eine dynamische Funktionsauswahl und -ausführung basierend auf dem bereitgestellten Schlüssel.
Das obige ist der detaillierte Inhalt vonWie definiere und verwende ich eine Funktionskarte in Go richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!