Nachdenken über Parameternamen in Go
Man möchte oft die Parameternamen einer Go-Methode bestimmen. Beim Versuch, diese Informationen über die TMethod-Funktion abzurufen, stellt ein Benutzer jedoch fest, dass nur der Strukturname zurückgegeben wird (in diesem Fall testData).
Grundlegendes zum Fehlen von Parameternamen
In Go werden die Namen von Methoden- oder Funktionsparametern nicht explizit in den Laufzeitinformationen gespeichert. Dies liegt daran, dass die Parameternamen für den Aufrufer der Methode oder Funktion nicht als entscheidend angesehen werden. Der Fokus liegt auf den Parametertypen und deren Reihenfolge.
Zwei Funktionen mit denselben Parameter- und Ergebnistypen haben identische Typen, unabhängig von ihren Parameternamen. Zum Beispiel:
func f1(a int) {} func f2(b int) {} fmt.Println(reflect.TypeOf(f1) == reflect.TypeOf(f2)) // Prints true
Alternative Ansätze zur Parameterbenennung
Wenn die gewünschte Funktionalität darin besteht, ein Framework zum Aufrufen von Funktionen mit „benannten“ Parametern zu erstellen, gibt es alternative Ansätze :
Weitere Einblicke
Detailliertere Informationen und Beispiele finden Sie im Folgenden Ressourcen:
Das obige ist der detaillierte Inhalt vonWarum kann ich keine Parameternamen aus Gos „reflect.TypeOf' abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!