Heim >Backend-Entwicklung >Golang >Wie definiere und verwende ich eine Funktionskarte in Go richtig?

Wie definiere und verwende ich eine Funktionskarte in Go richtig?

Barbara Streisand
Barbara StreisandOriginal
2024-12-17 19:03:10884Durchsuche

How to Correctly Define and Use a Map of Functions in Go?

Go-Funktionskarte

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn