Sind unbenannte Argumente eine Sache in Go?
In Go kann die Verwendung unbenannter Argumente in Funktionsdefinitionen zunächst Fragen aufwerfen, insbesondere wenn Sie stoßen auf Code, der Zeiger auf unbenannte Typen als Argumente enthält. Dies liegt daran, dass dem Funktionsargument ein Name fehlt, was es scheinbar unmöglich macht, innerhalb der Funktion darauf zu verweisen.
Zweck unbenannter Argumente
Unbenannte Parameter in Go sind keine Seltenheit . Gemäß der Parameterdeklarationsspezifikation ist die IdentifierList (der oder die Bezeichnernamen) optional, d. h. sie ist für Funktions- oder Methodenparameter nicht obligatorisch. Der Typ ist das einzige wesentliche Element.
Der Bedarf an unbenannten Parametern entsteht, wenn die Identität des Parameters für das Verhalten der Funktion irrelevant ist. Die Reihenfolge und die Typen der Parameter sind entscheidend, nicht ihre Namen.
Warum unbenannte Argumente verwenden?
Es gibt mehrere Gründe, warum man sich für die Verwendung unbenannter Argumente entscheiden könnte :
Beispiel:
Stellen Sie sich eine Schnittstelle namens MyWriter vor definiert eine Write-Methode:
type MyWriter interface { Write(p []byte) error }
Um eine einfache Implementierung dieser Schnittstelle bereitzustellen, die die Daten verwirft, könnten Sie einen DiscardWriter erstellen:
type DiscardWriter struct{} func (DiscardWriter) Write([]byte) error { return nil }
In diesem Beispiel sind sowohl der Empfänger als auch Die Argumente sind unbenannt, da sie nicht verwendet werden.
Sonstige Überlegungen:
unbenannte Parameter. Sie müssen alle Parameter benennen, wenn Sie sich für die Benennung von Parametern entscheiden. Sie können den leeren Bezeichner in Situationen wie dieser verwenden:
// Responds with "Hello" to all HTTP requests http.HandleFunc("/", func(w http.ResponseWriter, _ *http.Request) { io.WriteString(w, "Hello") })
Zusätzliche Ressourcen:
Das obige ist der detaillierte Inhalt vonUnterstützt Go unbenannte Funktionsargumente?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!