Heim > Artikel > Backend-Entwicklung > Wie verwende ich Variadic-Parameter mit Gorms „Exec' für Masseneinfügungen in Go richtig?
Verwenden von Variadic-Parametern zum Verbinden der Array-Schnittstelle in Golang
Bei Ihrem Versuch, Masseneinfügungen mit Gorm auszuführen, ist ein Fehler aufgetreten, der auf Folgendes zurückzuführen ist: Nichtübereinstimmung zwischen der Spaltenanzahl und den bereitgestellten Werten. Dieses Problem ist auf die falsche Formatierung Ihrer Abfrage zurückzuführen, wenn Sie eine Array-Schnittstelle verwenden.
Lösung:
Um dieses Problem zu beheben, müssen Sie das „…“ verwenden. Operator, wenn Elemente des Slice mit variadischen Parametern an die Funktion übergeben werden. Dadurch wird der Compiler angewiesen, jedes Element einzeln zu übergeben, anstatt den Slice-Wert als einzelnes Argument zu übergeben.
tx.Exec(sqlStr, vals...)
Erklärung:
Die Tx.Exec() Funktion hat die Signatur func (tx *Tx) Exec(query string, args ...interface{}) (Ergebnis, Fehler). Das bedeutet, dass Sie als zweiten Parameter, bezeichnet als args, eine variable Anzahl von Argumenten übergeben können. Durch die Verwendung des Operators „…“ weisen Sie den Compiler an, das Vals-Slice in einzelne Argumente zu erweitern.
Dies führt dazu, dass die folgende Abfrage ausgeführt wird:
INSERT INTO city(code, name) VALUES ('XX1', 'Jakarta'),('XX2', 'Bandung')
Das obige ist der detaillierte Inhalt vonWie verwende ich Variadic-Parameter mit Gorms „Exec' für Masseneinfügungen in Go richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!