Die Bedeutung von ...interface{} (Variadic Interface) verstehen
Im Go-Codeausschnitt unten:
func DPrintf(format string, a ...interface{}) (n int, err error) { if Debug > 0 { n, err = fmt.Printf(format, a...) } return }
Die Parameterdefinition a ...interface{} wirft die Frage auf: Was ist a in dieser Funktion? Die drei Punkte hier zeigen an, dass a ein variabler Parameter ist, sodass Sie eine beliebige Anzahl von Argumenten an diesen Parameter übergeben können.
Der Parameter a ist im Wesentlichen ein Slice vom Typ []interface{}. Wenn Sie DPrintf aufrufen, können Sie mehrere Argumente übergeben, die im a-Slice gespeichert werden. Zum Beispiel:
DPrintf("Value: %v", 10)
In diesem Aufruf empfängt DPrintf ein einzelnes Argument (10), das im a-Slice gespeichert wird.
Der Typ ...interface{} bedeutet, dass die Elemente eines Slice kann beliebiger Art sein. Dies liegt daran, dass interface{} der allgemeinste Schnittstellentyp in Go ist und es jedem konkreten Typ ermöglicht, ihn zu implementieren.
Vorteile der Verwendung variadischer Parameter:
Variadische Parameter bieten mehrere Vorteile:
Beispielverwendung:
Hier ist ein weiteres Beispiel dafür, wie Sie variadic verwenden können Parameter:
func Min(nums ...int) int { if len(nums) == 0 { return 0 } min := nums[0] for _, num := range nums { if num < min { min = num } } return min }
In dieser Funktion können Sie mit dem Parameter nums ...int eine beliebige Anzahl von Ganzzahlen übergeben. Die Funktion findet dann den Mindestwert unter diesen ganzen Zahlen.
Das obige ist der detaillierte Inhalt vonWas ist der Parameter „...interface{}' (Variadic Interface) in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!