In Go können Sie mit der Funktion append() Elemente an ein Slice desselben Typs anhängen. Wenn es sich jedoch um eine Methode handelt, die ein variables Argument-Slice vom Typ ...interface{} akzeptiert, führt das direkte Anhängen einer Zeichenfolge mit append("some string", v) zu einem Fehler.
Um erfolgreich voranzustellen Wenn Sie dem Variablenargument Slice einen String hinzufügen möchten, müssen Sie ein Slice mit Interface{}-Werten verwenden. Dies liegt daran, dass ...interface{} Elemente jeden Typs zulässt. Um dies zu erreichen, können Sie die Anfangszeichenfolge in ein []interface{}-Slice einschließen:
func (l Log) Error(v ...interface{}) { stringInterface := []interface{}{" ERROR "} l.Out.Println(append(stringInterface, v...)) }
Dies umschließt die ERROR-Zeichenfolge in ein []interface{}-Slice, das dann an die Variable angehängt werden kann Argument Slice v.
Hier ist ein Beispiel:
package main import "fmt" func main() { s := "first" rest := []interface{}{"second", 3} all := append([]interface{}{s}, rest...) fmt.Println(all) }
Ausgabe:
[first second 3]
Das obige ist der detaillierte Inhalt vonWie stelle ich in Go einen String einem variadischen Interface{}-Slice voran?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!