Heim > Backend-Entwicklung > Golang > Was bedeutet „...interface{}' in Go Variadic-Funktionen?

Was bedeutet „...interface{}' in Go Variadic-Funktionen?

Patricia Arquette
Freigeben: 2024-12-21 02:11:11
Original
562 Leute haben es durchsucht

What Does `...interface{}` Mean in Go Variadic Functions?

Die Bedeutung von ...interface{} in Go verstehen

In Go ist ein Parametertyp mit drei Punkten als Präfix (...) ) ist als variadischer Parameter bekannt. Dies bedeutet, dass eine Funktion eine beliebige Anzahl von Argumenten für diesen bestimmten Parameter akzeptieren kann.

Betrachten Sie die folgende Funktion:

func DPrintf(format string, a ...interface{}) (n int, err error) {
  if Debug > 0 {
    n, err = fmt.Printf(format, a...)
  }
  return
}
Nach dem Login kopieren

Der Parameter a ist vom Typ ...interface{} und gibt an dass es null oder mehr Argumente jeglichen Typs akzeptieren kann. Diese Argumente werden dann von der Funktion als Slice des für den Parameter deklarierten Typs empfangen, in diesem Fall []interface{}.

Die Go-Spezifikation liefert die folgende Erklärung:

„Der letzte Parameter in einer Funktionssignatur kann einen Typ haben, dem das Präfix … vorangestellt ist. Eine Funktion mit einem solchen Parameter heißt variadic und kann dafür mit null oder mehr Argumenten aufgerufen werden.“ Parameter."

Daher ist ein Parameter vom Typ ...interface{} äquivalent zu einem Parameter vom Typ []interface{} innerhalb der Funktion. Der Unterschied liegt darin, wie Argumente an die Funktion übergeben werden. Sie können entweder einzeln oder als einzelnes Slice übergeben werden. In diesem Fall müssen dem Slice-Wert die drei Punkte (...) angehängt werden.

Zum Beispiel die folgenden zwei Aufrufe der Funktion fmt.Println führt zum gleichen Ergebnis:

fmt.Println("First", "Second", "Third")
Nach dem Login kopieren
s := []interface{}{"First", "Second", "Third"}
fmt.Println(s...)
Nach dem Login kopieren

In beiden Fällen wird das Slice s mit den drei Punkten an die Println-Funktion übergeben, was angibt, dass es als a behandelt werden sollte Variadisches Argument.

Dieser Mechanismus bietet Flexibilität, indem er Funktionen ermöglicht, eine variable Anzahl von Argumenten zu akzeptieren, wodurch sie vielseitiger und wiederverwendbar werden.

Das obige ist der detaillierte Inhalt vonWas bedeutet „...interface{}' in Go Variadic-Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage